<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<!-- 
	Copyright (C) 2007, 2008, 2009, 2010, 2011. PARP Research Group.
	<http://perception.inf.um.es>
	University of Murcia, Spain.

	This file is part of the QVision library.

	QVision is free software: you can redistribute it and/or modify
	it under the terms of the GNU Lesser General Public License as
	published by the Free Software Foundation, version 3 of the License.

	QVision is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU Lesser General Public License for more details.

	You should have received a copy of the GNU Lesser General Public
	License along with QVision. If not, see <http://www.gnu.org/licenses/>.
-->

<html><head><meta http-equiv="content-Type" content="text/html;charset=UTF-8">
<title>QVision: Qt&#39;s Image, Video and Computer Vision Library</title>
<meta name="title" content="QVision" />
<meta name="dc.title" content="QVision" />
<meta name="url" content="http://perception.inf.um.es/QVision" />
<meta name="author" content="PARP Research Group - http://perception.inf.um.es" />
<meta name="revisit-after" content="30 DAYS"/>
<meta name="robots" content="index,follow"/>
<meta name="classification" content="*">
<meta name="rating" content="Safe For Kids">
<meta name="distribution" content="GLOBAL"/>
<meta name="description" content="Qt's Image, Video and Computer Vision Library"/>
<meta name="page-topic" content="Computer Vision research and prototype programming"/>
<meta name="geo.country" content="ES" />

<!--
Keywords:
By license:		open source, gnu, lgpl, gpl, free
By theme:		computer vision, image processing, robotics, programming, source, development
By usage:		library, toolkit, framework, prototype, application
By programming specs:	object oriented, c++, block programming, reusability, gui, graphical, parallel computing, high performance, GPU, prototyping
Interoperability with:	Qt, GSL, GNU Scientific library, OpenCV, CGAL, QWT, CUDA, mplayer, IPP, Intel Image Performance Primitives, blas, lapack
Functionallity:		image features, matrix algebra, projective geometry, mser, function minimization, function optimization, canny operator, harris operator, corner detection, performance evaluation, cpu usage, graphical interface
Main data-types:	matrix, vector, tensor, quaternion, image, polyline
Video sources:		webcam, camera, stream
Devices:		embedded, desktop computer, laptop, mini-laptop
Authors:		PARP research group. University of Murcia, Spain.
-->

<meta name="keywords" content="augmented reality, sfm, structure from motion, open source, gnu, lgpl, gpl, free, computer vision, image processing, robotics, programming, source, development, library, toolkit, framework, prototype, application, object oriented, c++, block programming, reusability, gui, graphical, parallel computing, high performance, GPU, prototyping, Qt, GSL, GNU Scientific library, OpenCV, CGAL, QWT, CUDA, mplayer, IPP, Intel Image Performance Primitives, blas, lapack, image features, matrix algebra, projective geometry, mser, function minimization, function optimization, canny operator, harris operator, corner detection, performance evaluation, cpu usage, graphical interface, matrix, vector, tensor, quaternion, image, polyline, webcam, camera, stream, embedded, desktop computer, laptop, mini-laptop, University of Murcia, Spain, PARP research group, vision por computador"/>
<meta http-equiv="keywords" content="augmented reality, sfm, structure from motion, open source, gnu, lgpl, gpl, free, computer vision, image processing, robotics, programming, source, development, library, toolkit, framework, prototype, application, object oriented, c++, block programming, reusability, gui, graphical, parallel computing, high performance, GPU, prototyping, Qt, GSL, GNU Scientific library, OpenCV, CGAL, QWT, CUDA, mplayer, IPP, Intel Image Performance Primitives, blas, lapack, image features, matrix algebra, projective geometry, mser, function minimization, function optimization, canny operator, harris operator, corner detection, performance evaluation, cpu usage, graphical interface, matrix, vector, tensor, quaternion, image, polyline, webcam, camera, stream, embedded, desktop computer, laptop, mini-laptop, University of Murcia, Spain, PARP research group, vision por computador"/>
<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="title" content="QVision"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="tabs.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="favicon.ico" />
</head><body>

<table width="100%"><tr>
	<td><a href="http://perception.inf.um.es/"><img src="parp.png" border="0" /> <big>PARP Research Group</big></a></td>
	<td align="right"><a href="http://www.um.es/"><big>Universidad de Murcia</big> <img src="um.png" border="0" /></a></td>
</tr></table>

<hr /><br />

<table width="95%" align="center"><tr><td>

<!-- Generated by Doxygen 1.6.3 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <form id="FSearchBox" action="search.php" method="get">
            <img id="MSearchSelect" src="search/search.png" alt=""/>
            <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                   onfocus="searchBox.OnSearchFieldFocus(true)" 
                   onblur="searchBox.OnSearchFieldFocus(false)"/>
          </form>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
    </ul>
  </div>
<h1>src/qvip/qvimage.cpp</h1><a href="qvimage_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> *      Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012. PARP Research Group.</span>
<a name="l00003"></a>00003 <span class="comment"> *      &lt;http://perception.inf.um.es&gt;</span>
<a name="l00004"></a>00004 <span class="comment"> *      University of Murcia, Spain.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> *      This file is part of the QVision library.</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> *      QVision is free software: you can redistribute it and/or modify</span>
<a name="l00009"></a>00009 <span class="comment"> *      it under the terms of the GNU Lesser General Public License as</span>
<a name="l00010"></a>00010 <span class="comment"> *      published by the Free Software Foundation, version 3 of the License.</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> *      QVision is distributed in the hope that it will be useful,</span>
<a name="l00013"></a>00013 <span class="comment"> *      but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00014"></a>00014 <span class="comment"> *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<a name="l00015"></a>00015 <span class="comment"> *      GNU Lesser General Public License for more details.</span>
<a name="l00016"></a>00016 <span class="comment"> *</span>
<a name="l00017"></a>00017 <span class="comment"> *      You should have received a copy of the GNU Lesser General Public</span>
<a name="l00018"></a>00018 <span class="comment"> *      License along with QVision. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span>
<a name="l00019"></a>00019 <span class="comment"> */</span>
<a name="l00020"></a>00020 
<a name="l00024"></a>00024 
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;QDebug&gt;</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;QVImage&gt;</span>
<a name="l00027"></a>00027 
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;iostream&gt;</span>
<a name="l00029"></a>00029 
<a name="l00030"></a><a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171">00030</a> <span class="keyword">template</span> &lt;&gt; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171" title="Overloaded function from QVGenericImage::getTypeQString().">QVImage&lt;uChar,1&gt;::getTypeQString</a>()<span class="keyword">             const   </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;QVImage&lt;uChar,1&gt;&quot;</span>; }
<a name="l00031"></a><a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171">00031</a> <span class="keyword">template</span> &lt;&gt; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171" title="Overloaded function from QVGenericImage::getTypeQString().">QVImage&lt;uChar,3&gt;::getTypeQString</a>()<span class="keyword">             const   </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;QVImage&lt;uChar,3&gt;&quot;</span>; }
<a name="l00032"></a><a class="code" href="classQVImage.html#aa5abf377f3c4f95d128270d351b8269c">00032</a> <span class="keyword">template</span> &lt;&gt; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171" title="Overloaded function from QVGenericImage::getTypeQString().">QVImage&lt;sChar,1&gt;::getTypeQString</a>()<span class="keyword">             const   </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;QVImage&lt;sChar,1&gt;&quot;</span>; }
<a name="l00033"></a><a class="code" href="classQVImage.html#a250fd54325bf7b45311081f10d6a7d21">00033</a> <span class="keyword">template</span> &lt;&gt; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171" title="Overloaded function from QVGenericImage::getTypeQString().">QVImage&lt;sChar,3&gt;::getTypeQString</a>()<span class="keyword">             const   </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;QVImage&lt;sChar,3&gt;&quot;</span>; }
<a name="l00034"></a><a class="code" href="classQVImage.html#a26060f0d5c591843b2b47c8c33a55b77">00034</a> <span class="keyword">template</span> &lt;&gt; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171" title="Overloaded function from QVGenericImage::getTypeQString().">QVImage&lt;uShort,1&gt;::getTypeQString</a>()<span class="keyword">    const   </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;QVImage&lt;uShort,1&gt;&quot;</span>; }
<a name="l00035"></a><a class="code" href="classQVImage.html#a82511ed913536f548b1f5e10e7f8f4a1">00035</a> <span class="keyword">template</span> &lt;&gt; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171" title="Overloaded function from QVGenericImage::getTypeQString().">QVImage&lt;uShort,3&gt;::getTypeQString</a>()<span class="keyword">    const   </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;QVImage&lt;uShort,3&gt;&quot;</span>; }
<a name="l00036"></a><a class="code" href="classQVImage.html#ab9e7c91408e79a5fc6a2a48f0b4bbcdd">00036</a> <span class="keyword">template</span> &lt;&gt; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171" title="Overloaded function from QVGenericImage::getTypeQString().">QVImage&lt;sShort,1&gt;::getTypeQString</a>()<span class="keyword">    const   </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;QVImage&lt;sShort,1&gt;&quot;</span>; }
<a name="l00037"></a><a class="code" href="classQVImage.html#aa9826942b7de555975fb354ef38bd76f">00037</a> <span class="keyword">template</span> &lt;&gt; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171" title="Overloaded function from QVGenericImage::getTypeQString().">QVImage&lt;sShort,3&gt;::getTypeQString</a>()<span class="keyword">    const   </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;QVImage&lt;sShort,3&gt;&quot;</span>; }
<a name="l00038"></a><a class="code" href="classQVImage.html#a1da886203b77c0baac9a9a8e5e31fbbb">00038</a> <span class="keyword">template</span> &lt;&gt; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171" title="Overloaded function from QVGenericImage::getTypeQString().">QVImage&lt;sInt,1&gt;::getTypeQString</a>()<span class="keyword">              const   </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;QVImage&lt;sInt,1&gt;&quot;</span>; }
<a name="l00039"></a><a class="code" href="classQVImage.html#a23e0b7fcceda1b493c384991aecff5ab">00039</a> <span class="keyword">template</span> &lt;&gt; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171" title="Overloaded function from QVGenericImage::getTypeQString().">QVImage&lt;sInt,3&gt;::getTypeQString</a>()<span class="keyword">              const   </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;QVImage&lt;sInt,3&gt;&quot;</span>; }
<a name="l00040"></a><a class="code" href="classQVImage.html#af223ffd23a8459c984a6cd9dad9864e7">00040</a> <span class="keyword">template</span> &lt;&gt; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171" title="Overloaded function from QVGenericImage::getTypeQString().">QVImage&lt;uInt,1&gt;::getTypeQString</a>()<span class="keyword">              const   </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;QVImage&lt;uInt,1&gt;&quot;</span>; }
<a name="l00041"></a><a class="code" href="classQVImage.html#a5449f66a7fd6c95310376ed220ba38fb">00041</a> <span class="keyword">template</span> &lt;&gt; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171" title="Overloaded function from QVGenericImage::getTypeQString().">QVImage&lt;uInt,3&gt;::getTypeQString</a>()<span class="keyword">              const   </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;QVImage&lt;uInt,3&gt;&quot;</span>; }
<a name="l00042"></a><a class="code" href="classQVImage.html#acd4dc980bb4626fb93142fffb06bd422">00042</a> <span class="keyword">template</span> &lt;&gt; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171" title="Overloaded function from QVGenericImage::getTypeQString().">QVImage&lt;sFloat,1&gt;::getTypeQString</a>()<span class="keyword">    const   </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;QVImage&lt;sFloat,1&gt;&quot;</span>; }
<a name="l00043"></a><a class="code" href="classQVImage.html#a851df498210edde9a152910076c12244">00043</a> <span class="keyword">template</span> &lt;&gt; <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classQVImage.html#aa8e2a101e62cdaa7d0fa7c020f625171" title="Overloaded function from QVGenericImage::getTypeQString().">QVImage&lt;sFloat,3&gt;::getTypeQString</a>()<span class="keyword">    const   </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;QVImage&lt;sFloat,3&gt;&quot;</span>; }
<a name="l00044"></a>00044 
<a name="l00045"></a>00045 <span class="comment">// Copy constructors</span>
<a name="l00046"></a>00046 <span class="preprocessor">#define CREATE_COPY_CONSTRUCTOR(TYPE, C)                                                                \</span>
<a name="l00047"></a>00047 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, C&gt;::QVImage(QVImage&lt;TYPE, C&gt; const &amp;img):QVGenericImage(img)          \</span>
<a name="l00048"></a>00048 <span class="preprocessor">        {                                                                                                                                       \</span>
<a name="l00049"></a>00049 <span class="preprocessor">        imageBuffer = img.imageBuffer;                                                                          \</span>
<a name="l00050"></a>00050 <span class="preprocessor">        step_div_type_size = getStep()/sizeof(TYPE);                                            \</span>
<a name="l00051"></a>00051 <span class="preprocessor">        }</span>
<a name="l00052"></a>00052 <span class="preprocessor"></span>
<a name="l00053"></a>00053 CREATE_COPY_CONSTRUCTOR(uChar, 1);
<a name="l00054"></a>00054 CREATE_COPY_CONSTRUCTOR(uChar, 3);
<a name="l00055"></a>00055 CREATE_COPY_CONSTRUCTOR(sChar, 1);
<a name="l00056"></a>00056 CREATE_COPY_CONSTRUCTOR(sChar, 3);
<a name="l00057"></a>00057 CREATE_COPY_CONSTRUCTOR(uShort, 1);
<a name="l00058"></a>00058 CREATE_COPY_CONSTRUCTOR(uShort, 3);
<a name="l00059"></a>00059 CREATE_COPY_CONSTRUCTOR(sShort, 1);
<a name="l00060"></a>00060 CREATE_COPY_CONSTRUCTOR(sShort, 3);
<a name="l00061"></a>00061 CREATE_COPY_CONSTRUCTOR(uInt, 1);
<a name="l00062"></a>00062 CREATE_COPY_CONSTRUCTOR(uInt, 3);
<a name="l00063"></a>00063 CREATE_COPY_CONSTRUCTOR(sInt, 1);
<a name="l00064"></a>00064 CREATE_COPY_CONSTRUCTOR(sInt, 3);
<a name="l00065"></a>00065 CREATE_COPY_CONSTRUCTOR(sFloat, 1);
<a name="l00066"></a>00066 CREATE_COPY_CONSTRUCTOR(sFloat, 3);
<a name="l00067"></a>00067 
<a name="l00068"></a>00068 <span class="comment">// Copy operator</span>
<a name="l00069"></a>00069 <span class="preprocessor">#define CREATE_COPY_OPERATOR(TYPE, C)                                           \</span>
<a name="l00070"></a>00070 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE,C&gt; &amp; QVImage&lt;TYPE, C&gt;::operator=(const QVImage&lt;TYPE, C&gt; &amp;img)  \</span>
<a name="l00071"></a>00071 <span class="preprocessor">        {                                                                                                               \</span>
<a name="l00072"></a>00072 <span class="preprocessor">        imageBuffer = img.imageBuffer;                                                  \</span>
<a name="l00073"></a>00073 <span class="preprocessor">        setROI(img.getROI()); setAnchor(img.getAnchor());               \</span>
<a name="l00074"></a>00074 <span class="preprocessor">        step_div_type_size = getStep()/sizeof(TYPE);                    \</span>
<a name="l00075"></a>00075 <span class="preprocessor">        return *this;                                                                                   \</span>
<a name="l00076"></a>00076 <span class="preprocessor">        }</span>
<a name="l00077"></a>00077 <span class="preprocessor"></span>
<a name="l00078"></a>00078 CREATE_COPY_OPERATOR(uChar, 1);
<a name="l00079"></a>00079 CREATE_COPY_OPERATOR(uChar, 3);
<a name="l00080"></a>00080 CREATE_COPY_OPERATOR(sChar, 1);
<a name="l00081"></a>00081 CREATE_COPY_OPERATOR(sChar, 3);
<a name="l00082"></a>00082 CREATE_COPY_OPERATOR(uShort, 1);
<a name="l00083"></a>00083 CREATE_COPY_OPERATOR(uShort, 3);
<a name="l00084"></a>00084 CREATE_COPY_OPERATOR(sShort, 1);
<a name="l00085"></a>00085 CREATE_COPY_OPERATOR(sShort, 3);
<a name="l00086"></a>00086 CREATE_COPY_OPERATOR(uInt, 1);
<a name="l00087"></a>00087 CREATE_COPY_OPERATOR(uInt, 3);
<a name="l00088"></a>00088 CREATE_COPY_OPERATOR(sInt, 1);
<a name="l00089"></a>00089 CREATE_COPY_OPERATOR(sInt, 3);
<a name="l00090"></a>00090 CREATE_COPY_OPERATOR(sFloat, 1);
<a name="l00091"></a>00091 CREATE_COPY_OPERATOR(sFloat, 3);
<a name="l00092"></a>00092 
<a name="l00094"></a>00094 <span class="comment">// QVIPP FUNCTIONS</span>
<a name="l00095"></a>00095 <span class="preprocessor">#ifdef QVIPP</span>
<a name="l00096"></a>00096 <span class="preprocessor"></span><span class="preprocessor">#include &lt;qvipp.h&gt;</span>
<a name="l00097"></a>00097 <span class="preprocessor">#endif // QVIPP</span>
<a name="l00098"></a>00098 <span class="preprocessor"></span>
<a name="l00099"></a>00099 <span class="comment">// Compose copy constructors</span>
<a name="l00100"></a>00100 <span class="preprocessor">#define CREATE_COMPOSE_COPY_CONSTRUCTOR(TYPE)                                                                                                                                                                                                           \</span>
<a name="l00101"></a>00101 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, 3&gt;::QVImage(QVImage&lt;TYPE,1&gt; const &amp;red, QVImage&lt;TYPE,1&gt; const &amp;green, QVImage&lt;TYPE,1&gt; const &amp;blue):QVGenericImage(red)        \</span>
<a name="l00102"></a>00102 <span class="preprocessor">        {                                                                                                                                                                                                                                                                                               \</span>
<a name="l00103"></a>00103 <span class="preprocessor">        imageBuffer = new QVImageBuffer&lt;TYPE&gt;(3*red.getCols(), red.getRows());                                                                                                                                                  \</span>
<a name="l00104"></a>00104 <span class="preprocessor">        Copy(red, green, blue, *this);                                                                                                                                                                                                                                  \</span>
<a name="l00105"></a>00105 <span class="preprocessor">        setROI(red.getROI()); setAnchor(red.getAnchor());                                                                                                                                                                                               \</span>
<a name="l00106"></a>00106 <span class="preprocessor">        step_div_type_size = getStep()/sizeof(TYPE);                                                                                                                                                                                                    \</span>
<a name="l00107"></a>00107 <span class="preprocessor">        }</span>
<a name="l00108"></a>00108 <span class="preprocessor"></span>
<a name="l00109"></a>00109 <span class="comment">//#ifdef QVIPP</span>
<a name="l00110"></a>00110 CREATE_COMPOSE_COPY_CONSTRUCTOR(uChar);
<a name="l00111"></a>00111 CREATE_COMPOSE_COPY_CONSTRUCTOR(uShort);
<a name="l00112"></a>00112 CREATE_COMPOSE_COPY_CONSTRUCTOR(sShort);
<a name="l00113"></a>00113 CREATE_COMPOSE_COPY_CONSTRUCTOR(sInt);
<a name="l00114"></a>00114 CREATE_COMPOSE_COPY_CONSTRUCTOR(sFloat);
<a name="l00115"></a>00115 <span class="comment">//#endif</span>
<a name="l00116"></a>00116 
<a name="l00117"></a>00117 <span class="comment">// Conversion constructors</span>
<a name="l00118"></a>00118 <span class="preprocessor">#define CREATE_CONVERT_CONSTRUCTOR(TYPE1, TYPE2, C)                                                                                     \</span>
<a name="l00119"></a>00119 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE2, C&gt;::QVImage(QVImage&lt;TYPE1, C&gt; const &amp;img):QVGenericImage(img)        \</span>
<a name="l00120"></a>00120 <span class="preprocessor">        {                                                                                                                                                                               \</span>
<a name="l00121"></a>00121 <span class="preprocessor">        imageBuffer = new QVImageBuffer&lt;TYPE2&gt;(C*img.getCols(), img.getRows());                                 \</span>
<a name="l00122"></a>00122 <span class="preprocessor">        setAnchor(img.getROI().x(),img.getROI().y());                                                                                   \</span>
<a name="l00123"></a>00123 <span class="preprocessor">        Convert(img, *this);                                                                                                                                    \</span>
<a name="l00124"></a>00124 <span class="preprocessor">        setROI(img.getROI()); setAnchor(img.getAnchor());                                                                               \</span>
<a name="l00125"></a>00125 <span class="preprocessor">        step_div_type_size = getStep()/sizeof(TYPE2);                                                                                   \</span>
<a name="l00126"></a>00126 <span class="preprocessor">        }</span>
<a name="l00127"></a>00127 <span class="preprocessor"></span>
<a name="l00128"></a>00128 <span class="comment">//#ifdef QVIPP</span>
<a name="l00129"></a>00129 <span class="comment">// (ORIG, DEST, CHAN)</span>
<a name="l00130"></a>00130 <span class="comment">// sFloat</span>
<a name="l00131"></a>00131 <span class="comment">//CREATE_CONVERT_CONSTRUCTOR(sFloat,    sFloat, 1);</span>
<a name="l00132"></a>00132 CREATE_CONVERT_CONSTRUCTOR(sFloat,      uChar, 1);
<a name="l00133"></a>00133 CREATE_CONVERT_CONSTRUCTOR(sFloat,      sChar, 1);
<a name="l00134"></a>00134 CREATE_CONVERT_CONSTRUCTOR(sFloat,      sInt, 1);
<a name="l00135"></a>00135 CREATE_CONVERT_CONSTRUCTOR(sFloat,      uInt, 1);
<a name="l00136"></a>00136 CREATE_CONVERT_CONSTRUCTOR(sFloat,      sShort, 1);
<a name="l00137"></a>00137 CREATE_CONVERT_CONSTRUCTOR(sFloat,      uShort, 1);
<a name="l00138"></a>00138 
<a name="l00139"></a>00139 <span class="comment">//CREATE_CONVERT_CONSTRUCTOR(sFloat,    sFloat, 3);</span>
<a name="l00140"></a>00140 CREATE_CONVERT_CONSTRUCTOR(sFloat,      uChar, 3);
<a name="l00141"></a>00141 CREATE_CONVERT_CONSTRUCTOR(sFloat,      sChar, 3);
<a name="l00142"></a>00142 CREATE_CONVERT_CONSTRUCTOR(sFloat,      sInt, 3);
<a name="l00143"></a>00143 CREATE_CONVERT_CONSTRUCTOR(sFloat,      uInt, 3);
<a name="l00144"></a>00144 CREATE_CONVERT_CONSTRUCTOR(sFloat,      sShort, 3);
<a name="l00145"></a>00145 CREATE_CONVERT_CONSTRUCTOR(sFloat,      uShort, 3);
<a name="l00146"></a>00146 
<a name="l00147"></a>00147 <span class="comment">// uChar</span>
<a name="l00148"></a>00148 CREATE_CONVERT_CONSTRUCTOR(uChar,       sFloat, 1);
<a name="l00149"></a>00149 <span class="comment">//CREATE_CONVERT_CONSTRUCTOR(uChar,     uChar, 1);</span>
<a name="l00150"></a>00150 CREATE_CONVERT_CONSTRUCTOR(uChar,       sChar, 1);
<a name="l00151"></a>00151 CREATE_CONVERT_CONSTRUCTOR(uChar,       sInt, 1);
<a name="l00152"></a>00152 CREATE_CONVERT_CONSTRUCTOR(uChar,       uInt, 1);
<a name="l00153"></a>00153 CREATE_CONVERT_CONSTRUCTOR(uChar,       sShort, 1);
<a name="l00154"></a>00154 CREATE_CONVERT_CONSTRUCTOR(uChar,       uShort, 1);
<a name="l00155"></a>00155 
<a name="l00156"></a>00156 CREATE_CONVERT_CONSTRUCTOR(uChar,       sFloat, 3);
<a name="l00157"></a>00157 <span class="comment">//CREATE_CONVERT_CONSTRUCTOR(uChar,     uChar, 3);</span>
<a name="l00158"></a>00158 CREATE_CONVERT_CONSTRUCTOR(uChar,       sChar, 3);
<a name="l00159"></a>00159 CREATE_CONVERT_CONSTRUCTOR(uChar,       sInt, 3);
<a name="l00160"></a>00160 CREATE_CONVERT_CONSTRUCTOR(uChar,       uInt, 3);
<a name="l00161"></a>00161 CREATE_CONVERT_CONSTRUCTOR(uChar,       sShort, 3);
<a name="l00162"></a>00162 CREATE_CONVERT_CONSTRUCTOR(uChar,       uShort, 3);
<a name="l00163"></a>00163 
<a name="l00164"></a>00164 <span class="comment">// sChar</span>
<a name="l00165"></a>00165 CREATE_CONVERT_CONSTRUCTOR(sChar,       sFloat, 1);
<a name="l00166"></a>00166 CREATE_CONVERT_CONSTRUCTOR(sChar,       uChar, 1);
<a name="l00167"></a>00167 <span class="comment">//CREATE_CONVERT_CONSTRUCTOR(sChar,     sChar, 1);</span>
<a name="l00168"></a>00168 CREATE_CONVERT_CONSTRUCTOR(sChar,       sInt, 1);
<a name="l00169"></a>00169 CREATE_CONVERT_CONSTRUCTOR(sChar,       uInt, 1);
<a name="l00170"></a>00170 CREATE_CONVERT_CONSTRUCTOR(sChar,       sShort, 1);
<a name="l00171"></a>00171 CREATE_CONVERT_CONSTRUCTOR(sChar,       uShort, 1);
<a name="l00172"></a>00172 
<a name="l00173"></a>00173 CREATE_CONVERT_CONSTRUCTOR(sChar,       sFloat, 3);
<a name="l00174"></a>00174 CREATE_CONVERT_CONSTRUCTOR(sChar,       uChar, 3);
<a name="l00175"></a>00175 <span class="comment">//CREATE_CONVERT_CONSTRUCTOR(sChar,     sChar, 3);</span>
<a name="l00176"></a>00176 CREATE_CONVERT_CONSTRUCTOR(sChar,       sInt, 3);
<a name="l00177"></a>00177 CREATE_CONVERT_CONSTRUCTOR(sChar,       uInt, 3);
<a name="l00178"></a>00178 CREATE_CONVERT_CONSTRUCTOR(sChar,       sShort, 3);
<a name="l00179"></a>00179 CREATE_CONVERT_CONSTRUCTOR(sChar,       uShort, 3);
<a name="l00180"></a>00180 
<a name="l00181"></a>00181 <span class="comment">// sInt</span>
<a name="l00182"></a>00182 CREATE_CONVERT_CONSTRUCTOR(sInt,        sFloat, 1);
<a name="l00183"></a>00183 CREATE_CONVERT_CONSTRUCTOR(sInt,        uChar, 1);
<a name="l00184"></a>00184 CREATE_CONVERT_CONSTRUCTOR(sInt,        sChar, 1);
<a name="l00185"></a>00185 <span class="comment">//CREATE_CONVERT_CONSTRUCTOR(sInt,      sInt, 1);</span>
<a name="l00186"></a>00186 CREATE_CONVERT_CONSTRUCTOR(sInt,        uInt, 1);
<a name="l00187"></a>00187 CREATE_CONVERT_CONSTRUCTOR(sInt,        sShort, 1);
<a name="l00188"></a>00188 CREATE_CONVERT_CONSTRUCTOR(sInt,        uShort, 1);
<a name="l00189"></a>00189 
<a name="l00190"></a>00190 CREATE_CONVERT_CONSTRUCTOR(sInt,        sFloat, 3);
<a name="l00191"></a>00191 CREATE_CONVERT_CONSTRUCTOR(sInt,        uChar, 3);
<a name="l00192"></a>00192 CREATE_CONVERT_CONSTRUCTOR(sInt,        sChar, 3);
<a name="l00193"></a>00193 <span class="comment">//CREATE_CONVERT_CONSTRUCTOR(sInt,      sInt, 3);</span>
<a name="l00194"></a>00194 CREATE_CONVERT_CONSTRUCTOR(sInt,        uInt, 3);
<a name="l00195"></a>00195 CREATE_CONVERT_CONSTRUCTOR(sInt,        sShort, 3);
<a name="l00196"></a>00196 CREATE_CONVERT_CONSTRUCTOR(sInt,        uShort, 3);
<a name="l00197"></a>00197 
<a name="l00198"></a>00198 <span class="comment">// uInt</span>
<a name="l00199"></a>00199 CREATE_CONVERT_CONSTRUCTOR(uInt,        sFloat, 1);
<a name="l00200"></a>00200 CREATE_CONVERT_CONSTRUCTOR(uInt,        uChar, 1);
<a name="l00201"></a>00201 CREATE_CONVERT_CONSTRUCTOR(uInt,        sChar, 1);
<a name="l00202"></a>00202 CREATE_CONVERT_CONSTRUCTOR(uInt,        sInt, 1);
<a name="l00203"></a>00203 <span class="comment">//CREATE_CONVERT_CONSTRUCTOR(uInt,      uInt, 1);</span>
<a name="l00204"></a>00204 CREATE_CONVERT_CONSTRUCTOR(uInt,        sShort, 1);
<a name="l00205"></a>00205 CREATE_CONVERT_CONSTRUCTOR(uInt,        uShort, 1);
<a name="l00206"></a>00206 
<a name="l00207"></a>00207 CREATE_CONVERT_CONSTRUCTOR(uInt,        sFloat, 3);
<a name="l00208"></a>00208 CREATE_CONVERT_CONSTRUCTOR(uInt,        uChar, 3);
<a name="l00209"></a>00209 CREATE_CONVERT_CONSTRUCTOR(uInt,        sChar, 3);
<a name="l00210"></a>00210 CREATE_CONVERT_CONSTRUCTOR(uInt,        sInt, 3);
<a name="l00211"></a>00211 <span class="comment">//CREATE_CONVERT_CONSTRUCTOR(uInt,      uInt, 3);</span>
<a name="l00212"></a>00212 CREATE_CONVERT_CONSTRUCTOR(uInt,        sShort, 3);
<a name="l00213"></a>00213 CREATE_CONVERT_CONSTRUCTOR(uInt,        uShort, 3);
<a name="l00214"></a>00214 
<a name="l00215"></a>00215 <span class="comment">// sShort</span>
<a name="l00216"></a>00216 CREATE_CONVERT_CONSTRUCTOR(sShort,      sFloat, 1);
<a name="l00217"></a>00217 CREATE_CONVERT_CONSTRUCTOR(sShort,      uChar, 1);
<a name="l00218"></a>00218 CREATE_CONVERT_CONSTRUCTOR(sShort,      sChar, 1);
<a name="l00219"></a>00219 CREATE_CONVERT_CONSTRUCTOR(sShort,      sInt, 1);
<a name="l00220"></a>00220 CREATE_CONVERT_CONSTRUCTOR(sShort,      uInt, 1);
<a name="l00221"></a>00221 <span class="comment">//CREATE_CONVERT_CONSTRUCTOR(sShort,    sShort, 1);</span>
<a name="l00222"></a>00222 CREATE_CONVERT_CONSTRUCTOR(sShort,      uShort, 1);
<a name="l00223"></a>00223 
<a name="l00224"></a>00224 CREATE_CONVERT_CONSTRUCTOR(sShort,      sFloat, 3);
<a name="l00225"></a>00225 CREATE_CONVERT_CONSTRUCTOR(sShort,      uChar, 3);
<a name="l00226"></a>00226 CREATE_CONVERT_CONSTRUCTOR(sShort,      sChar, 3);
<a name="l00227"></a>00227 CREATE_CONVERT_CONSTRUCTOR(sShort,      sInt, 3);
<a name="l00228"></a>00228 CREATE_CONVERT_CONSTRUCTOR(sShort,      uInt, 3);
<a name="l00229"></a>00229 <span class="comment">//CREATE_CONVERT_CONSTRUCTOR(sShort,    sShort, 3);</span>
<a name="l00230"></a>00230 CREATE_CONVERT_CONSTRUCTOR(sShort,      uShort, 3);
<a name="l00231"></a>00231 
<a name="l00232"></a>00232 <span class="comment">// uShort</span>
<a name="l00233"></a>00233 CREATE_CONVERT_CONSTRUCTOR(uShort,      sFloat, 1);
<a name="l00234"></a>00234 CREATE_CONVERT_CONSTRUCTOR(uShort,      uChar, 1);
<a name="l00235"></a>00235 CREATE_CONVERT_CONSTRUCTOR(uShort,      sChar, 1);
<a name="l00236"></a>00236 CREATE_CONVERT_CONSTRUCTOR(uShort,      sInt, 1);
<a name="l00237"></a>00237 CREATE_CONVERT_CONSTRUCTOR(uShort,      uInt, 1);
<a name="l00238"></a>00238 CREATE_CONVERT_CONSTRUCTOR(uShort,      sShort, 1);
<a name="l00239"></a>00239 <span class="comment">//CREATE_CONVERT_CONSTRUCTOR(uShort,    uShort, 1);</span>
<a name="l00240"></a>00240 
<a name="l00241"></a>00241 CREATE_CONVERT_CONSTRUCTOR(uShort,      sFloat, 3);
<a name="l00242"></a>00242 CREATE_CONVERT_CONSTRUCTOR(uShort,      uChar, 3);
<a name="l00243"></a>00243 CREATE_CONVERT_CONSTRUCTOR(uShort,      sChar, 3);
<a name="l00244"></a>00244 CREATE_CONVERT_CONSTRUCTOR(uShort,      sInt, 3);
<a name="l00245"></a>00245 CREATE_CONVERT_CONSTRUCTOR(uShort,      uInt, 3);
<a name="l00246"></a>00246 CREATE_CONVERT_CONSTRUCTOR(uShort,      sShort, 3);
<a name="l00247"></a>00247 <span class="comment">//CREATE_CONVERT_CONSTRUCTOR(uShort,    uShort, 3);</span>
<a name="l00248"></a>00248 
<a name="l00249"></a>00249 <span class="preprocessor">#define CREATE_CONVERT_CONSTRUCTOR_C3_C1(TYPE)                                                                                          \</span>
<a name="l00250"></a>00250 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, 1&gt;::QVImage(QVImage&lt;TYPE, 3&gt; const &amp;img):QVGenericImage(img)          \</span>
<a name="l00251"></a>00251 <span class="preprocessor">        {                                                                                                                                                                               \</span>
<a name="l00252"></a>00252 <span class="preprocessor">        imageBuffer = new QVImageBuffer&lt;TYPE&gt;(img.getCols(), img.getRows());                                    \</span>
<a name="l00253"></a>00253 <span class="preprocessor">        setAnchor(img.getROI().x(),img.getROI().y());                                                                                   \</span>
<a name="l00254"></a>00254 <span class="preprocessor">        RGBToGray(img, *this);                                                                                                                                  \</span>
<a name="l00255"></a>00255 <span class="preprocessor">        setROI(img.getROI()); setAnchor(img.getAnchor());                                                                               \</span>
<a name="l00256"></a>00256 <span class="preprocessor">        step_div_type_size = getStep()/sizeof(TYPE);                                                                                    \</span>
<a name="l00257"></a>00257 <span class="preprocessor">        }</span>
<a name="l00258"></a>00258 <span class="preprocessor"></span>
<a name="l00259"></a>00259 CREATE_CONVERT_CONSTRUCTOR_C3_C1(uChar);
<a name="l00260"></a>00260 CREATE_CONVERT_CONSTRUCTOR_C3_C1(sChar);
<a name="l00261"></a>00261 CREATE_CONVERT_CONSTRUCTOR_C3_C1(uInt);
<a name="l00262"></a>00262 CREATE_CONVERT_CONSTRUCTOR_C3_C1(sInt);
<a name="l00263"></a>00263 CREATE_CONVERT_CONSTRUCTOR_C3_C1(uShort);
<a name="l00264"></a>00264 CREATE_CONVERT_CONSTRUCTOR_C3_C1(sShort);
<a name="l00265"></a>00265 CREATE_CONVERT_CONSTRUCTOR_C3_C1(sFloat);
<a name="l00266"></a>00266 
<a name="l00267"></a>00267 <span class="preprocessor">#define CREATE_CONVERT_CONSTRUCTOR_C1_C3(TYPE)                                                                                          \</span>
<a name="l00268"></a>00268 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, 3&gt;::QVImage(QVImage&lt;TYPE, 1&gt; const &amp;img):QVGenericImage(img)          \</span>
<a name="l00269"></a>00269 <span class="preprocessor">        {                                                                                                                                                                               \</span>
<a name="l00270"></a>00270 <span class="preprocessor">        imageBuffer = new QVImageBuffer&lt;TYPE&gt;(3*img.getCols(), img.getRows());                                  \</span>
<a name="l00271"></a>00271 <span class="preprocessor">        setAnchor(img.getROI().x(),img.getROI().y());                                                                                   \</span>
<a name="l00272"></a>00272 <span class="preprocessor">        Copy(img, img, img, *this);                                                                                                                             \</span>
<a name="l00273"></a>00273 <span class="preprocessor">        setROI(img.getROI()); setAnchor(img.getAnchor());                                                                               \</span>
<a name="l00274"></a>00274 <span class="preprocessor">        step_div_type_size = getStep()/sizeof(TYPE);                                                                                    \</span>
<a name="l00275"></a>00275 <span class="preprocessor">        }</span>
<a name="l00276"></a>00276 <span class="preprocessor"></span>
<a name="l00277"></a>00277 CREATE_CONVERT_CONSTRUCTOR_C1_C3(uChar);
<a name="l00278"></a>00278 CREATE_CONVERT_CONSTRUCTOR_C1_C3(sChar);
<a name="l00279"></a>00279 CREATE_CONVERT_CONSTRUCTOR_C1_C3(uShort);
<a name="l00280"></a>00280 CREATE_CONVERT_CONSTRUCTOR_C1_C3(sShort);
<a name="l00281"></a>00281 CREATE_CONVERT_CONSTRUCTOR_C1_C3(uInt);
<a name="l00282"></a>00282 CREATE_CONVERT_CONSTRUCTOR_C1_C3(sInt);
<a name="l00283"></a>00283 CREATE_CONVERT_CONSTRUCTOR_C1_C3(sFloat);
<a name="l00284"></a>00284 
<a name="l00285"></a>00285 <span class="comment">// Nota: las siguientes funciones dan error al compilar, ya que no existen versiones de la función wrapper Convert,</span>
<a name="l00286"></a>00286 <span class="comment">// para convertir de una imagen entera, a una imagen de tipo uShort, sShort, o sFloat.</span>
<a name="l00287"></a>00287 <span class="comment">//      CREATE_CONVERT_CONSTRUCTOR(uShort, sInt, 1);</span>
<a name="l00288"></a>00288 <span class="comment">//      CREATE_CONVERT_CONSTRUCTOR(sShort, sInt, 1);</span>
<a name="l00289"></a>00289 <span class="comment">//      CREATE_CONVERT_CONSTRUCTOR(uShort, sInt, 3);</span>
<a name="l00290"></a>00290 <span class="comment">//      CREATE_CONVERT_CONSTRUCTOR(sShort, sInt, 3);</span>
<a name="l00291"></a>00291 <span class="comment">//      CREATE_CONVERT_CONSTRUCTOR(sFloat, sInt, 3);</span>
<a name="l00292"></a>00292 <span class="comment">//      CREATE_CONVERT_CONSTRUCTOR(sFloat, sInt, 3);</span>
<a name="l00293"></a>00293 <span class="comment">//</span>
<a name="l00294"></a>00294 <span class="comment">// Por ello, estas funciones deben ser definidas con funciones de conversión Ad-hoc, así como las funciones de conversión</span>
<a name="l00295"></a>00295 <span class="comment">// de valores uShort a valores sShort, y viceversa, que tampoco están implementadas por las IPP, ni las funciones para convertir</span>
<a name="l00296"></a>00296 <span class="comment">// imagenes de distinto tipo y canal.</span>
<a name="l00297"></a>00297 <span class="comment">//</span>
<a name="l00298"></a>00298 <span class="comment">// Ojo: Para implementar las funciones de conversión entre imagenes de tipo sShort y uShort, hay que tener en cuenta la saturación</span>
<a name="l00299"></a>00299 <span class="comment">// (que hacen las IPP para todas las funciones de conversión que implementa):</span>
<a name="l00300"></a>00300 <span class="comment">// - Si se quiere convertir un valor sShort menor que cero a un valor uShort, se deja como el valor cero (0).</span>
<a name="l00301"></a>00301 <span class="comment">// - Si se quiere convertir un valor uShort mayor que IPP_MAX_16S a sShort, se debe dejar como el valor IPP_MAX_16S.</span>
<a name="l00302"></a>00302 
<a name="l00303"></a>00303 <span class="comment">/*#define       CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(TYPE1, TYPE2)                                               \</span>
<a name="l00304"></a>00304 <span class="comment">template &lt;&gt; QVImage&lt;TYPE2, 1&gt;::QVImage(QVImage&lt;TYPE1, 1&gt; const &amp;img):QVGenericImage(img)                \</span>
<a name="l00305"></a>00305 <span class="comment">        {                                                                                               \</span>
<a name="l00306"></a>00306 <span class="comment">        imageBuffer = new QVImageBuffer&lt;TYPE2&gt;(img.getCols(), img.getRows());                   \</span>
<a name="l00307"></a>00307 <span class="comment">        QVIMAGE_PTR_INIT_WRITE(TYPE2, this);                                                            \</span>
<a name="l00308"></a>00308 <span class="comment">        QVIMAGE_INIT_READ(TYPE1, img);                                                                  \</span>
<a name="l00309"></a>00309 <span class="comment">        for (int col = img.getROI().left(); col &lt; img.getROI().right(); col++)                          \</span>
<a name="l00310"></a>00310 <span class="comment">                for (int row = img.getROI().top(); row &lt; img.getROI().bottom(); row++)                  \</span>
<a name="l00311"></a>00311 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 0) = (TYPE2)QVIMAGE_PIXEL(img, col, row, 0);      \</span>
<a name="l00312"></a>00312 <span class="comment">        setROI(img.getROI()); setAnchor(img.getAnchor());                                               \</span>
<a name="l00313"></a>00313 <span class="comment">        step_div_type_size = getStep()/sizeof(TYPE2);                                                   \</span>
<a name="l00314"></a>00314 <span class="comment">        }</span>
<a name="l00315"></a>00315 <span class="comment"></span>
<a name="l00316"></a>00316 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(uShort, sShort);</span>
<a name="l00317"></a>00317 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(sShort, uShort);</span>
<a name="l00318"></a>00318 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(sInt, uShort);</span>
<a name="l00319"></a>00319 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(sInt, sShort);</span>
<a name="l00320"></a>00320 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(sInt, sFloat);</span>
<a name="l00321"></a>00321 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(sFloat, sInt);</span>
<a name="l00322"></a>00322 <span class="comment">#ifndef QVIPP</span>
<a name="l00323"></a>00323 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(uChar,      uShort);</span>
<a name="l00324"></a>00324 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(uChar,      sShort);</span>
<a name="l00325"></a>00325 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(uChar,      sInt);</span>
<a name="l00326"></a>00326 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(uChar,      sFloat);</span>
<a name="l00327"></a>00327 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(uShort,     uChar);</span>
<a name="l00328"></a>00328 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(uShort,     sInt);</span>
<a name="l00329"></a>00329 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(uShort,     sFloat);</span>
<a name="l00330"></a>00330 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(sShort,     uChar);</span>
<a name="l00331"></a>00331 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(sShort,     sInt);</span>
<a name="l00332"></a>00332 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(sShort,     sFloat);</span>
<a name="l00333"></a>00333 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(sInt,       uChar);</span>
<a name="l00334"></a>00334 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(sFloat,     uChar);</span>
<a name="l00335"></a>00335 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(sFloat,     uShort);</span>
<a name="l00336"></a>00336 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_1(sFloat,     sShort);</span>
<a name="l00337"></a>00337 <span class="comment">#endif</span>
<a name="l00338"></a>00338 <span class="comment"></span>
<a name="l00339"></a>00339 <span class="comment">#define CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(TYPE1, TYPE2)                                               \</span>
<a name="l00340"></a>00340 <span class="comment">template &lt;&gt; QVImage&lt;TYPE2, 3&gt;::QVImage(QVImage&lt;TYPE1, 3&gt; const &amp;img):QVGenericImage(img)                \</span>
<a name="l00341"></a>00341 <span class="comment">        {                                                                                               \</span>
<a name="l00342"></a>00342 <span class="comment">        imageBuffer = new QVImageBuffer&lt;TYPE2&gt;(3*img.getCols(), img.getRows());                 \</span>
<a name="l00343"></a>00343 <span class="comment">        QVIMAGE_PTR_INIT_WRITE(TYPE2, this);                                                            \</span>
<a name="l00344"></a>00344 <span class="comment">        QVIMAGE_INIT_READ(TYPE1, img);                                                                  \</span>
<a name="l00345"></a>00345 <span class="comment">        for (int col = img.getROI().left(); col &lt; img.getROI().right(); col++)                          \</span>
<a name="l00346"></a>00346 <span class="comment">                for (int row = img.getROI().top(); row &lt; img.getROI().bottom(); row++)                  \</span>
<a name="l00347"></a>00347 <span class="comment">                        {                                                                               \</span>
<a name="l00348"></a>00348 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 0) = (TYPE2)QVIMAGE_PIXEL(img, col, row, 0);      \</span>
<a name="l00349"></a>00349 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 1) = (TYPE2)QVIMAGE_PIXEL(img, col, row, 1);      \</span>
<a name="l00350"></a>00350 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 2) = (TYPE2)QVIMAGE_PIXEL(img, col, row, 2);      \</span>
<a name="l00351"></a>00351 <span class="comment">                        }                                                                               \</span>
<a name="l00352"></a>00352 <span class="comment">        setROI(img.getROI()); setAnchor(img.getAnchor());                                               \</span>
<a name="l00353"></a>00353 <span class="comment">        step_div_type_size = getStep()/sizeof(TYPE2);                                                   \</span>
<a name="l00354"></a>00354 <span class="comment">        }</span>
<a name="l00355"></a>00355 <span class="comment"></span>
<a name="l00356"></a>00356 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(uShort, sShort);</span>
<a name="l00357"></a>00357 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(sShort, uShort);</span>
<a name="l00358"></a>00358 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(sInt, uShort);</span>
<a name="l00359"></a>00359 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(sInt, sShort);</span>
<a name="l00360"></a>00360 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(sInt, sFloat);</span>
<a name="l00361"></a>00361 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(sFloat, sInt);</span>
<a name="l00362"></a>00362 <span class="comment">#ifndef QVIPP</span>
<a name="l00363"></a>00363 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(uChar,      uShort);</span>
<a name="l00364"></a>00364 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(uChar,      sShort);</span>
<a name="l00365"></a>00365 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(uChar,      sInt);</span>
<a name="l00366"></a>00366 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(uChar,      sFloat);</span>
<a name="l00367"></a>00367 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(uShort,     uChar);</span>
<a name="l00368"></a>00368 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(uShort,     sInt);</span>
<a name="l00369"></a>00369 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(uShort,     sFloat);</span>
<a name="l00370"></a>00370 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(sShort,     uChar);</span>
<a name="l00371"></a>00371 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(sShort,     sInt);</span>
<a name="l00372"></a>00372 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(sShort,     sFloat);</span>
<a name="l00373"></a>00373 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(sInt,       uChar);</span>
<a name="l00374"></a>00374 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(sFloat,     uChar);</span>
<a name="l00375"></a>00375 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(sFloat,     uShort);</span>
<a name="l00376"></a>00376 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_3(sFloat,     sShort);</span>
<a name="l00377"></a>00377 <span class="comment">#endif*/</span>
<a name="l00378"></a>00378 
<a name="l00379"></a>00379 <span class="comment">/*#define       CREATE_CONVERT_CONSTRUCTOR_NO_IPP_C3_C1(TYPE)                                                           \</span>
<a name="l00380"></a>00380 <span class="comment">template &lt;&gt; QVImage&lt;TYPE, 1&gt;::QVImage(QVImage&lt;TYPE, 3&gt; const &amp;img):QVGenericImage(img)                          \</span>
<a name="l00381"></a>00381 <span class="comment">        {                                                                                                       \</span>
<a name="l00382"></a>00382 <span class="comment">        imageBuffer = new QVImageBuffer&lt;TYPE&gt;(img.getCols(), img.getRows());                                    \</span>
<a name="l00383"></a>00383 <span class="comment">        QVIMAGE_PTR_INIT_WRITE(TYPE, this);                                                                     \</span>
<a name="l00384"></a>00384 <span class="comment">        QVIMAGE_INIT_READ(TYPE, img);                                                                           \</span>
<a name="l00385"></a>00385 <span class="comment">        for (int col = img.getROI().left(); col &lt; img.getROI().right(); col++)                                  \</span>
<a name="l00386"></a>00386 <span class="comment">                for (int row = img.getROI().top(); row &lt; img.getROI().bottom(); row++)                          \</span>
<a name="l00387"></a>00387 <span class="comment">                        {                                                                                       \</span>
<a name="l00388"></a>00388 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 0) = (TYPE)(0.299 * QVIMAGE_PIXEL(img, col, row, 0));     \</span>
<a name="l00389"></a>00389 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 0) += (TYPE)(0.587 * QVIMAGE_PIXEL(img, col, row, 1));    \</span>
<a name="l00390"></a>00390 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 0) += (TYPE)(0.114 * QVIMAGE_PIXEL(img, col, row, 2));    \</span>
<a name="l00391"></a>00391 <span class="comment">                        }                                                                                       \</span>
<a name="l00392"></a>00392 <span class="comment">        setROI(img.getROI()); setAnchor(img.getAnchor());                                                       \</span>
<a name="l00393"></a>00393 <span class="comment">        step_div_type_size = getStep()/sizeof(TYPE);                                                            \</span>
<a name="l00394"></a>00394 <span class="comment">        }</span>
<a name="l00395"></a>00395 <span class="comment"></span>
<a name="l00396"></a>00396 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_C3_C1(sInt);</span>
<a name="l00397"></a>00397 <span class="comment">#ifndef QVIPP</span>
<a name="l00398"></a>00398 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_C3_C1(uChar);</span>
<a name="l00399"></a>00399 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_C3_C1(uShort);</span>
<a name="l00400"></a>00400 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_C3_C1(sShort);</span>
<a name="l00401"></a>00401 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_C3_C1(sFloat);</span>
<a name="l00402"></a>00402 <span class="comment">#endif</span>
<a name="l00403"></a>00403 <span class="comment"></span>
<a name="l00404"></a>00404 <span class="comment">#define CREATE_CONVERT_CONSTRUCTOR_NO_IPP_C1_C3(TYPE)                                                   \</span>
<a name="l00405"></a>00405 <span class="comment">template &lt;&gt; QVImage&lt;TYPE, 3&gt;::QVImage(QVImage&lt;TYPE, 1&gt; const &amp;img):QVGenericImage(img)                  \</span>
<a name="l00406"></a>00406 <span class="comment">        {                                                                                               \</span>
<a name="l00407"></a>00407 <span class="comment">        imageBuffer = new QVImageBuffer&lt;TYPE&gt;(3*img.getCols(), img.getRows());                          \</span>
<a name="l00408"></a>00408 <span class="comment">        QVIMAGE_PTR_INIT_WRITE(TYPE, this);                                                             \</span>
<a name="l00409"></a>00409 <span class="comment">        QVIMAGE_INIT_READ(TYPE, img);                                                                   \</span>
<a name="l00410"></a>00410 <span class="comment">        for (int col = img.getROI().left(); col &lt; img.getROI().right(); col++)                          \</span>
<a name="l00411"></a>00411 <span class="comment">                for (int row = img.getROI().top(); row &lt; img.getROI().bottom(); row++)                  \</span>
<a name="l00412"></a>00412 <span class="comment">                        {                                                                               \</span>
<a name="l00413"></a>00413 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 0) = (TYPE)(QVIMAGE_PIXEL(img, col, row, 0));     \</span>
<a name="l00414"></a>00414 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 1) = (TYPE)(QVIMAGE_PIXEL(img, col, row, 0));     \</span>
<a name="l00415"></a>00415 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 2) = (TYPE)(QVIMAGE_PIXEL(img, col, row, 0));     \</span>
<a name="l00416"></a>00416 <span class="comment">                        }                                                                               \</span>
<a name="l00417"></a>00417 <span class="comment">        setROI(img.getROI()); setAnchor(img.getAnchor());                                               \</span>
<a name="l00418"></a>00418 <span class="comment">        step_div_type_size = getStep()/sizeof(TYPE);                                                    \</span>
<a name="l00419"></a>00419 <span class="comment">        }</span>
<a name="l00420"></a>00420 <span class="comment"></span>
<a name="l00421"></a>00421 <span class="comment">#ifndef QVIPP</span>
<a name="l00422"></a>00422 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_C1_C3(uChar);</span>
<a name="l00423"></a>00423 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_C1_C3(uShort);</span>
<a name="l00424"></a>00424 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_C1_C3(sShort);</span>
<a name="l00425"></a>00425 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_C1_C3(sInt);</span>
<a name="l00426"></a>00426 <span class="comment">CREATE_CONVERT_CONSTRUCTOR_NO_IPP_C1_C3(sFloat);</span>
<a name="l00427"></a>00427 <span class="comment">#endif*/</span>
<a name="l00428"></a>00428 
<a name="l00429"></a><a class="code" href="classQVImage.html#a5448f8d71a6ce0bbf459a5b3d7c6e60c">00429</a> <span class="keyword">template</span> &lt;&gt; <a class="code" href="classQVImage.html#a87e4a3ea6bc2db99d0fe170ac8b21b1f" title="Default constructor.">QVImage&lt;uChar, 3&gt;::QVImage</a>(<span class="keyword">const</span> QImage &amp;qimg):<a class="code" href="classQVGenericImage.html" title="Base class for QVImage objects.">QVGenericImage</a>()
<a name="l00430"></a>00430         {
<a name="l00431"></a>00431         imageBuffer = <span class="keyword">new</span> QVImageBuffer&lt;uChar&gt;(3*qimg.size().width(), qimg.size().height());
<a name="l00432"></a>00432         <a class="code" href="classQVGenericImage.html#a2e01c2584cee10559bf1aac1ca7e287b" title="Set the region of interest of the image.">setROI</a>(0, 0, qimg.size().width(), qimg.size().height());
<a name="l00433"></a>00433         <a class="code" href="classQVGenericImage.html#aa3f37d1f7d2271b52c69c8034be8ddac" title="Set anchor point of the image.">setAnchor</a>(<a class="code" href="classQVGenericImage.html#a55132f8ba36904516dcf384039c670e4" title="Method for obtaining actual region of interest for image.">getROI</a>().x(), <a class="code" href="classQVGenericImage.html#a55132f8ba36904516dcf384039c670e4" title="Method for obtaining actual region of interest for image.">getROI</a>().y());
<a name="l00434"></a>00434         step_div_type_size = <a class="code" href="classQVImage.html#a8c5cb45d0c7fbf135d89c5cb40ed4875" title="Overloaded function from QVGenericImage::getStep().">getStep</a>()/<span class="keyword">sizeof</span>(uChar);
<a name="l00435"></a>00435 
<a name="l00436"></a>00436         <span class="keyword">const</span> <span class="keywordtype">int</span> step = <a class="code" href="classQVImage.html#a8c5cb45d0c7fbf135d89c5cb40ed4875" title="Overloaded function from QVGenericImage::getStep().">getStep</a>();
<a name="l00437"></a>00437         uChar *imagerawdata = <a class="code" href="classQVImage.html#a231507d781e33e508fac771b5284c3c9" title="Method to obtain image data buffer, in read/write mode.">getWriteData</a>();
<a name="l00438"></a>00438         <span class="keywordflow">for</span>(uint row=0; row != <a class="code" href="classQVImage.html#a55e71ad628f450ee82bb4226cb62ec17" title="Overloaded function from QVGenericImage::getRows().">getRows</a>(); row++)
<a name="l00439"></a>00439                <span class="keywordflow">for</span>(uint col=0; col != <a class="code" href="classQVImage.html#ad0f2758702ee4d96d538aa353ae81bb7" title="Overloaded function from QVGenericImage::getCols().">getCols</a>(); col++)
<a name="l00440"></a>00440                         {
<a name="l00441"></a>00441                         imagerawdata[row*step + 3*col] = qRed(qimg.pixel(col,row));
<a name="l00442"></a>00442                         imagerawdata[row*step + 3*col + 1] = qGreen(qimg.pixel(col,row));
<a name="l00443"></a>00443                         imagerawdata[row*step + 3*col + 2] = qBlue(qimg.pixel(col,row));
<a name="l00444"></a>00444                         }
<a name="l00445"></a>00445         }
<a name="l00446"></a>00446 
<a name="l00447"></a><a class="code" href="classQVImage.html#a32786513dbed5b1277fdd08aca880d78">00447</a> <span class="keyword">template</span> &lt;&gt; <a class="code" href="classQVImage.html#a32786513dbed5b1277fdd08aca880d78" title="Converts the QVImage to a QImage object.">QVImage&lt;uChar, 3&gt;::operator QImage</a>()<span class="keyword"> const</span>
<a name="l00448"></a>00448 <span class="keyword">        </span>{
<a name="l00449"></a>00449     QRect roi = <a class="code" href="classQVGenericImage.html#a55132f8ba36904516dcf384039c670e4" title="Method for obtaining actual region of interest for image.">getROI</a>();
<a name="l00450"></a>00450     <span class="keyword">const</span> <span class="keywordtype">int</span> x=roi.x(), y=roi.y(), w=roi.width(), h=roi.height(), step = <a class="code" href="classQVImage.html#a8c5cb45d0c7fbf135d89c5cb40ed4875" title="Overloaded function from QVGenericImage::getStep().">getStep</a>();
<a name="l00451"></a>00451     QImage qImage(w, h, QImage::Format_RGB32);
<a name="l00452"></a>00452         <span class="keyword">const</span> uChar *imagerawdata = <a class="code" href="classQVImage.html#a200b9b19dbe2a79f75d603f9ecc67bf1" title="Method to obtain image data buffer, in read mode.">getReadData</a>();
<a name="l00453"></a>00453         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> row = y; row &lt; y+h; row++)
<a name="l00454"></a>00454                         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> col = x; col &lt; x+w; col++)
<a name="l00455"></a>00455                                 {
<a name="l00456"></a>00456                                 <span class="keyword">const</span> <span class="keywordtype">int</span> idx = row*step + 3*col;
<a name="l00457"></a>00457                                 uChar   r = imagerawdata[idx + 0],
<a name="l00458"></a>00458                                                 g = imagerawdata[idx + 1],
<a name="l00459"></a>00459                                                 b = imagerawdata[idx + 2];
<a name="l00460"></a>00460                                 qImage.setPixel(col-x, row-y, qRgb(r,g,b));
<a name="l00461"></a>00461                                 }
<a name="l00462"></a>00462 
<a name="l00463"></a>00463         <span class="keywordflow">return</span> qImage;
<a name="l00464"></a>00464         }
<a name="l00465"></a>00465 
<a name="l00466"></a>00466 <span class="comment">// Convert operators for IplImage</span>
<a name="l00467"></a>00467 <span class="comment">/*template &lt;&gt; QVImage&lt;uChar, 3&gt;::QVImage(const IplImage *iplImage):QVGenericImage()</span>
<a name="l00468"></a>00468 <span class="comment">        {</span>
<a name="l00469"></a>00469 <span class="comment">        imageBuffer = new QVImageBuffer&lt;uChar&gt;(3*iplImage-&gt;width, iplImage-&gt;height, align(3*iplImage-&gt;width,4));</span>
<a name="l00470"></a>00470 <span class="comment">        setROI(0, 0, iplImage-&gt;width, iplImage-&gt;height);</span>
<a name="l00471"></a>00471 <span class="comment">        setAnchor(0, 0);</span>
<a name="l00472"></a>00472 <span class="comment"></span>
<a name="l00473"></a>00473 <span class="comment">        const int lineSize = getCols() * 3;     // This depends on data size</span>
<a name="l00474"></a>00474 <span class="comment"></span>
<a name="l00475"></a>00475 <span class="comment">        for (uInt y=0 ;y&lt;getRows(); y++)</span>
<a name="l00476"></a>00476 <span class="comment">                memcpy(getWriteData() + getStep() * y, iplImage-&gt;imageData + iplImage-&gt;widthStep*y, lineSize);</span>
<a name="l00477"></a>00477 <span class="comment">        }*/</span>
<a name="l00478"></a>00478 
<a name="l00479"></a>00479 <span class="comment">/*template &lt;&gt; QVImage&lt;uChar, 3&gt;::operator IplImage *() const</span>
<a name="l00480"></a>00480 <span class="comment">        {</span>
<a name="l00481"></a>00481 <span class="comment">        IplImage *imageDest = cvCreateImageHeader(cvSize(getCols(), getRows()), IPL_DEPTH_8U, 3);</span>
<a name="l00482"></a>00482 <span class="comment">        cvCreateImageData(imageDest);</span>
<a name="l00483"></a>00483 <span class="comment"></span>
<a name="l00484"></a>00484 <span class="comment">        const int lineSize = getCols() * 3;     // This depends on data size</span>
<a name="l00485"></a>00485 <span class="comment"></span>
<a name="l00486"></a>00486 <span class="comment">        for (uInt y=0 ;y&lt;getRows(); y++)</span>
<a name="l00487"></a>00487 <span class="comment">                memcpy(imageDest-&gt;imageData + imageDest-&gt;widthStep*y, getReadData() + getStep() * y, lineSize);</span>
<a name="l00488"></a>00488 <span class="comment"></span>
<a name="l00489"></a>00489 <span class="comment">        return imageDest;</span>
<a name="l00490"></a>00490 <span class="comment">        }*/</span>
<a name="l00491"></a>00491 
<a name="l00492"></a>00492 <span class="comment">// IPL_DEPTH_8U</span>
<a name="l00493"></a>00493 <span class="comment">// IPL_DEPTH_8S</span>
<a name="l00494"></a>00494 <span class="comment">// IPL_DEPTH_16U</span>
<a name="l00495"></a>00495 <span class="comment">// IPL_DEPTH_16S</span>
<a name="l00496"></a>00496 <span class="comment">// IPL_DEPTH_32S</span>
<a name="l00497"></a>00497 <span class="comment">// IPL_DEPTH_32F</span>
<a name="l00498"></a>00498 <span class="comment">// IPL_DEPTH_64F</span>
<a name="l00499"></a>00499 
<a name="l00501"></a><a class="code" href="qvimage_8cpp.html#ac61503d19209be27099ee5247271d02f">00501</a> <span class="preprocessor">#define CREATE_IPLIMAGE_CONSTRUCTOR(TYPE, C, DEPTH)                                                                     \</span>
<a name="l00502"></a>00502 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, C&gt;::QVImage(const IplImage *iplImage):QVGenericImage()                                        \</span>
<a name="l00503"></a>00503 <span class="preprocessor">        {                                                                                                               \</span>
<a name="l00504"></a>00504 <span class="preprocessor">        if (iplImage-&gt;nChannels != C)                                                                                   \</span>
<a name="l00505"></a>00505 <span class="preprocessor">                qWarning(&quot;Conversion from incompatible OpenCV image: incompatible channel number&quot;);                     \</span>
<a name="l00506"></a>00506 <span class="preprocessor">        if (iplImage-&gt;depth != DEPTH)                                                                                   \</span>
<a name="l00507"></a>00507 <span class="preprocessor">                qWarning(&quot;Conversion from incompatible OpenCV image: incompatible depth&quot;);                              \</span>
<a name="l00508"></a>00508 <span class="preprocessor">                                                                                                                        \</span>
<a name="l00509"></a>00509 <span class="preprocessor">        </span><span class="comment">/*std::cout &lt;&lt; &quot;BBB&quot; &lt;&lt; std::endl;*/</span> \
<a name="l00510"></a>00510         imageBuffer = new QVImageBuffer&lt;TYPE&gt;(C*iplImage-&gt;width, iplImage-&gt;height <span class="comment">/*align(C*iplImage-&gt;width,4)*/</span>);      \
<a name="l00511"></a>00511         setROI(0, 0, iplImage-&gt;width, iplImage-&gt;height);                                                                \
<a name="l00512"></a>00512         step_div_type_size = getStep()/sizeof(TYPE);                                                                    \
<a name="l00513"></a>00513         setAnchor(0, 0);                                                                                                \
<a name="l00514"></a>00514                                                                                                                         \
<a name="l00515"></a>00515         const int lineSize = getCols() * C;     <span class="comment">/* This depends on data size */</span>                                         \
<a name="l00516"></a>00516                                                                                                                         \
<a name="l00517"></a>00517         for (uInt y=0 ;y&lt;getRows(); y++)                                                                                \
<a name="l00518"></a>00518                 memcpy(getWriteData() + getStep() * y, iplImage-&gt;imageData + iplImage-&gt;widthStep*y, lineSize);          \
<a name="l00519"></a>00519         }
<a name="l00520"></a>00520 
<a name="l00521"></a>00521 <span class="preprocessor">#ifdef QVOPENCV</span>
<a name="l00522"></a>00522 <span class="preprocessor"></span><a class="code" href="qvimage_8cpp.html#ac61503d19209be27099ee5247271d02f">CREATE_IPLIMAGE_CONSTRUCTOR</a>(uChar, 1, IPL_DEPTH_8U);
<a name="l00523"></a>00523 <a class="code" href="qvimage_8cpp.html#ac61503d19209be27099ee5247271d02f">CREATE_IPLIMAGE_CONSTRUCTOR</a>(uChar, 3, IPL_DEPTH_8U);
<a name="l00524"></a>00524 <a class="code" href="qvimage_8cpp.html#ac61503d19209be27099ee5247271d02f">CREATE_IPLIMAGE_CONSTRUCTOR</a>(sFloat, 1, IPL_DEPTH_32F);
<a name="l00525"></a>00525 <a class="code" href="qvimage_8cpp.html#ac61503d19209be27099ee5247271d02f">CREATE_IPLIMAGE_CONSTRUCTOR</a>(sFloat, 3, IPL_DEPTH_32F);
<a name="l00526"></a>00526 <span class="preprocessor">#endif</span>
<a name="l00527"></a>00527 <span class="preprocessor"></span>
<a name="l00528"></a>00528 <span class="preprocessor">#define CREATE_IPLIMAGE_CONVERSION(TYPE, C, DEPTH)                                                                      \</span>
<a name="l00529"></a>00529 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, C&gt;::operator IplImage *() const                                                               \</span>
<a name="l00530"></a>00530 <span class="preprocessor">        {                                                                                                               \</span>
<a name="l00531"></a>00531 <span class="preprocessor">        IplImage *imageDest = cvCreateImageHeader(cvSize(getCols(), getRows()), DEPTH, C);                              \</span>
<a name="l00532"></a>00532 <span class="preprocessor">        cvCreateImageData(imageDest);                                                                                   \</span>
<a name="l00533"></a>00533 <span class="preprocessor">                                                                                                                        \</span>
<a name="l00534"></a>00534 <span class="preprocessor">        const int lineSize = getCols() * C;     </span><span class="comment">/* This depends on data size */</span>                                         \
<a name="l00535"></a>00535                                                                                                                         \
<a name="l00536"></a>00536         for (uInt y=0 ;y&lt;getRows(); y++)                                                                                \
<a name="l00537"></a>00537                 memcpy(imageDest-&gt;imageData + imageDest-&gt;widthStep*y, getReadData() + getStep() * y, lineSize);         \
<a name="l00538"></a>00538                                                                                                                         \
<a name="l00539"></a>00539         return imageDest;                                                                                               \
<a name="l00540"></a>00540         }
<a name="l00541"></a>00541 
<a name="l00542"></a>00542 <span class="preprocessor">#ifdef QVOPENCV</span>
<a name="l00543"></a>00543 <span class="preprocessor"></span>CREATE_IPLIMAGE_CONVERSION(uChar, 1, IPL_DEPTH_8U);
<a name="l00544"></a>00544 CREATE_IPLIMAGE_CONVERSION(uChar, 3, IPL_DEPTH_8U);
<a name="l00545"></a>00545 CREATE_IPLIMAGE_CONVERSION(sFloat, 1, IPL_DEPTH_32F);
<a name="l00546"></a>00546 CREATE_IPLIMAGE_CONVERSION(sFloat, 3, IPL_DEPTH_32F);
<a name="l00547"></a>00547 <span class="preprocessor">#endif</span>
<a name="l00548"></a>00548 <span class="preprocessor"></span>
<a name="l00549"></a>00549 <span class="comment">// Operators. Only with the IPP</span>
<a name="l00550"></a>00550 <span class="preprocessor">#define CREATE_OPERATOR(NAME, OPERATOR, TYPE, C)                                                \</span>
<a name="l00551"></a>00551 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, C&gt; QVImage&lt;TYPE,C&gt;::OPERATOR(const QVImage&lt;TYPE, C&gt; &amp;img) const       \</span>
<a name="l00552"></a>00552 <span class="preprocessor">        {                                                                                       \</span>
<a name="l00553"></a>00553 <span class="preprocessor">        QVImage&lt;TYPE, C&gt; result = *this;                                                        \</span>
<a name="l00554"></a>00554 <span class="preprocessor">        NAME(*this, img, result);                                                               \</span>
<a name="l00555"></a>00555 <span class="preprocessor">        return result;                                                                          \</span>
<a name="l00556"></a>00556 <span class="preprocessor">        }</span>
<a name="l00557"></a>00557 <span class="preprocessor"></span>
<a name="l00558"></a>00558 <span class="preprocessor">#ifdef QVIPP</span>
<a name="l00559"></a>00559 <span class="preprocessor"></span>CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga44cde4bf9c772056004a9fc94fd4123b" title="Add image to accumulator.">Add</a>, <span class="keyword">operator</span>+, uChar, 1);
<a name="l00560"></a>00560 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf69fed782124cc0f79894de83b83e82a" title="Adds, subtracts, or multiplies pixel values of two source images and places the results...">Mul</a>, <span class="keyword">operator</span>*, uChar, 1);
<a name="l00561"></a>00561 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gad33dbf2f4305241b30c50d9523b3b818" title="QVision wrapper function for IPP&amp;#39;s ippiSub_8u_C1RSfs.">Sub</a>, <span class="keyword">operator</span>-, uChar, 1);
<a name="l00562"></a>00562 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf3539de07571607988bf21e9ba9d4622" title="Divides pixel values of an image by pixel values of another image and places the...">Div</a>, <span class="keyword">operator</span>/, uChar, 1);
<a name="l00563"></a>00563 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga44cde4bf9c772056004a9fc94fd4123b" title="Add image to accumulator.">Add</a>, <span class="keyword">operator</span>+, uChar, 3);
<a name="l00564"></a>00564 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf69fed782124cc0f79894de83b83e82a" title="Adds, subtracts, or multiplies pixel values of two source images and places the results...">Mul</a>, <span class="keyword">operator</span>*, uChar, 3);
<a name="l00565"></a>00565 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gad33dbf2f4305241b30c50d9523b3b818" title="QVision wrapper function for IPP&amp;#39;s ippiSub_8u_C1RSfs.">Sub</a>, <span class="keyword">operator</span>-, uChar, 3);
<a name="l00566"></a>00566 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf3539de07571607988bf21e9ba9d4622" title="Divides pixel values of an image by pixel values of another image and places the...">Div</a>, <span class="keyword">operator</span>/, uChar, 3);
<a name="l00567"></a>00567 
<a name="l00568"></a>00568 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga44cde4bf9c772056004a9fc94fd4123b" title="Add image to accumulator.">Add</a>, <span class="keyword">operator</span>+, uShort, 1);
<a name="l00569"></a>00569 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf69fed782124cc0f79894de83b83e82a" title="Adds, subtracts, or multiplies pixel values of two source images and places the results...">Mul</a>, <span class="keyword">operator</span>*, uShort, 1);
<a name="l00570"></a>00570 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gad33dbf2f4305241b30c50d9523b3b818" title="QVision wrapper function for IPP&amp;#39;s ippiSub_8u_C1RSfs.">Sub</a>, <span class="keyword">operator</span>-, uShort, 1);
<a name="l00571"></a>00571 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf3539de07571607988bf21e9ba9d4622" title="Divides pixel values of an image by pixel values of another image and places the...">Div</a>, <span class="keyword">operator</span>/, uShort, 1);
<a name="l00572"></a>00572 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga44cde4bf9c772056004a9fc94fd4123b" title="Add image to accumulator.">Add</a>, <span class="keyword">operator</span>+, uShort, 3);
<a name="l00573"></a>00573 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf69fed782124cc0f79894de83b83e82a" title="Adds, subtracts, or multiplies pixel values of two source images and places the results...">Mul</a>, <span class="keyword">operator</span>*, uShort, 3);
<a name="l00574"></a>00574 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gad33dbf2f4305241b30c50d9523b3b818" title="QVision wrapper function for IPP&amp;#39;s ippiSub_8u_C1RSfs.">Sub</a>, <span class="keyword">operator</span>-, uShort, 3);
<a name="l00575"></a>00575 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf3539de07571607988bf21e9ba9d4622" title="Divides pixel values of an image by pixel values of another image and places the...">Div</a>, <span class="keyword">operator</span>/, uShort, 3);
<a name="l00576"></a>00576 
<a name="l00577"></a>00577 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga44cde4bf9c772056004a9fc94fd4123b" title="Add image to accumulator.">Add</a>, <span class="keyword">operator</span>+, sShort, 1);
<a name="l00578"></a>00578 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf69fed782124cc0f79894de83b83e82a" title="Adds, subtracts, or multiplies pixel values of two source images and places the results...">Mul</a>, <span class="keyword">operator</span>*, sShort, 1);
<a name="l00579"></a>00579 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gad33dbf2f4305241b30c50d9523b3b818" title="QVision wrapper function for IPP&amp;#39;s ippiSub_8u_C1RSfs.">Sub</a>, <span class="keyword">operator</span>-, sShort, 1);
<a name="l00580"></a>00580 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf3539de07571607988bf21e9ba9d4622" title="Divides pixel values of an image by pixel values of another image and places the...">Div</a>, <span class="keyword">operator</span>/, sShort, 1);
<a name="l00581"></a>00581 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga44cde4bf9c772056004a9fc94fd4123b" title="Add image to accumulator.">Add</a>, <span class="keyword">operator</span>+, sShort, 3);
<a name="l00582"></a>00582 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf69fed782124cc0f79894de83b83e82a" title="Adds, subtracts, or multiplies pixel values of two source images and places the results...">Mul</a>, <span class="keyword">operator</span>*, sShort, 3);
<a name="l00583"></a>00583 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gad33dbf2f4305241b30c50d9523b3b818" title="QVision wrapper function for IPP&amp;#39;s ippiSub_8u_C1RSfs.">Sub</a>, <span class="keyword">operator</span>-, sShort, 3);
<a name="l00584"></a>00584 CREATE_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf3539de07571607988bf21e9ba9d4622" title="Divides pixel values of an image by pixel values of another image and places the...">Div</a>, <span class="keyword">operator</span>/, sShort, 3);
<a name="l00585"></a>00585 <span class="preprocessor">#endif</span>
<a name="l00586"></a>00586 <span class="preprocessor"></span>
<a name="l00587"></a>00587 <span class="preprocessor">#define CREATE_OPERATOR_INT_C1(OPERATOR, OPERATION, TYPE)                                                                                       \</span>
<a name="l00588"></a>00588 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, 1&gt; QVImage&lt;TYPE, 1&gt;::OPERATOR(const QVImage&lt;TYPE, 1&gt; &amp;img) const                                                      \</span>
<a name="l00589"></a>00589 <span class="preprocessor">        {                                                                                                                                       \</span>
<a name="l00590"></a>00590 <span class="preprocessor">        QVImage&lt;TYPE, 1&gt; result = *this;                                                                                                        \</span>
<a name="l00591"></a>00591 <span class="preprocessor">        QVIMAGE_PTR_INIT_READ(TYPE, this);                                                                                                      \</span>
<a name="l00592"></a>00592 <span class="preprocessor">        QVIMAGE_INIT_READ(TYPE, img);                                                                                                           \</span>
<a name="l00593"></a>00593 <span class="preprocessor">        QVIMAGE_INIT_WRITE(TYPE, result);                                                                                                       \</span>
<a name="l00594"></a>00594 <span class="preprocessor">        for (int col = result.getROI().left(); col &lt; result.getROI().right(); col++)                                                            \</span>
<a name="l00595"></a>00595 <span class="preprocessor">                for (int row = result.getROI().top(); row &lt; result.getROI().bottom(); row++)                                                    \</span>
<a name="l00596"></a>00596 <span class="preprocessor">                        QVIMAGE_PIXEL(result, col, row, 0) = QVIMAGE_PIXEL(img, col, row, 0) OPERATION QVIMAGE_PIXEL(this, col, row, 0);        \</span>
<a name="l00597"></a>00597 <span class="preprocessor">        return result;                                                                                                                          \</span>
<a name="l00598"></a>00598 <span class="preprocessor">        }</span>
<a name="l00599"></a>00599 <span class="preprocessor"></span>
<a name="l00600"></a>00600 <span class="preprocessor">#ifdef QVIPP</span>
<a name="l00601"></a>00601 <span class="preprocessor"></span>CREATE_OPERATOR_INT_C1(<span class="keyword">operator</span>+, +, sInt);
<a name="l00602"></a>00602 CREATE_OPERATOR_INT_C1(<span class="keyword">operator</span>*, *, sInt);
<a name="l00603"></a>00603 CREATE_OPERATOR_INT_C1(<span class="keyword">operator</span>-, -, sInt);
<a name="l00604"></a>00604 CREATE_OPERATOR_INT_C1(<span class="keyword">operator</span>/, /, sInt);
<a name="l00605"></a>00605 <span class="preprocessor">#endif</span>
<a name="l00606"></a>00606 <span class="preprocessor"></span>
<a name="l00607"></a>00607 <span class="preprocessor">#define CREATE_OPERATOR_INT_C3(OPERATOR, OPERATION, TYPE)                                                                                       \</span>
<a name="l00608"></a>00608 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, 3&gt; QVImage&lt;TYPE, 3&gt;::OPERATOR(const QVImage&lt;TYPE, 3&gt; &amp;img) const                                                      \</span>
<a name="l00609"></a>00609 <span class="preprocessor">        {                                                                                                                                       \</span>
<a name="l00610"></a>00610 <span class="preprocessor">        QVImage&lt;TYPE, 3&gt; result = *this;                                                                                                        \</span>
<a name="l00611"></a>00611 <span class="preprocessor">        QVIMAGE_PTR_INIT_READ(TYPE, this);                                                                                                      \</span>
<a name="l00612"></a>00612 <span class="preprocessor">        QVIMAGE_INIT_READ(TYPE, img);                                                                                                           \</span>
<a name="l00613"></a>00613 <span class="preprocessor">        QVIMAGE_INIT_WRITE(TYPE, result);                                                                                                       \</span>
<a name="l00614"></a>00614 <span class="preprocessor">        for (int col = result.getROI().left(); col &lt; result.getROI().right(); col++)                                                            \</span>
<a name="l00615"></a>00615 <span class="preprocessor">                for (int row = result.getROI().top(); row &lt; result.getROI().bottom(); row++)                                                    \</span>
<a name="l00616"></a>00616 <span class="preprocessor">                        {                                                                                                                       \</span>
<a name="l00617"></a>00617 <span class="preprocessor">                        QVIMAGE_PIXEL(result, col, row, 0) = QVIMAGE_PIXEL(img, col, row, 0) OPERATION QVIMAGE_PIXEL(this, col, row, 0);        \</span>
<a name="l00618"></a>00618 <span class="preprocessor">                        QVIMAGE_PIXEL(result, col, row, 1) = QVIMAGE_PIXEL(img, col, row, 1) OPERATION QVIMAGE_PIXEL(this, col, row, 1);        \</span>
<a name="l00619"></a>00619 <span class="preprocessor">                        QVIMAGE_PIXEL(result, col, row, 2) = QVIMAGE_PIXEL(img, col, row, 2) OPERATION QVIMAGE_PIXEL(this, col, row, 2);        \</span>
<a name="l00620"></a>00620 <span class="preprocessor">                        }                                                                                                                       \</span>
<a name="l00621"></a>00621 <span class="preprocessor">        return result;                                                                                                                          \</span>
<a name="l00622"></a>00622 <span class="preprocessor">        }</span>
<a name="l00623"></a>00623 <span class="preprocessor"></span>
<a name="l00624"></a>00624 <span class="preprocessor">#ifdef QVIPP</span>
<a name="l00625"></a>00625 <span class="preprocessor"></span>CREATE_OPERATOR_INT_C3(<span class="keyword">operator</span>+, +, sInt);
<a name="l00626"></a>00626 CREATE_OPERATOR_INT_C3(<span class="keyword">operator</span>*, *, sInt);
<a name="l00627"></a>00627 CREATE_OPERATOR_INT_C3(<span class="keyword">operator</span>-, -, sInt);
<a name="l00628"></a>00628 CREATE_OPERATOR_INT_C3(<span class="keyword">operator</span>/, /, sInt);
<a name="l00629"></a>00629 <span class="preprocessor">#endif</span>
<a name="l00630"></a>00630 <span class="preprocessor"></span>
<a name="l00631"></a>00631 <span class="preprocessor">#define CREATE_CONST_OPERATOR(NAME, OPERATOR, TYPE, C)                          \</span>
<a name="l00632"></a>00632 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, C&gt; QVImage&lt;TYPE,C&gt;::OPERATOR(const TYPE value) const  \</span>
<a name="l00633"></a>00633 <span class="preprocessor">        {                                                                       \</span>
<a name="l00634"></a>00634 <span class="preprocessor">        QVImage&lt;TYPE, C&gt; result = *this;                                        \</span>
<a name="l00635"></a>00635 <span class="preprocessor">        NAME(*this, value, result);                                             \</span>
<a name="l00636"></a>00636 <span class="preprocessor">        return result;                                                          \</span>
<a name="l00637"></a>00637 <span class="preprocessor">        }</span>
<a name="l00638"></a>00638 <span class="preprocessor"></span>
<a name="l00639"></a>00639 <span class="preprocessor">#ifdef QVIPP</span>
<a name="l00640"></a>00640 <span class="preprocessor"></span>CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga79125dd2c16c07ab21c9bf8ca78a7583" title="QVision wrapper function for IPP&amp;#39;s ippiAddC_8u_C1RSfs.">AddC</a>, <span class="keyword">operator</span>+, uChar, 1);
<a name="l00641"></a>00641 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#gadc8a14bd103bb45afa43950ce454f2fd" title="Adds, subtracts, or multiplies pixel values of an image and a constant, and places...">MulC</a>, <span class="keyword">operator</span>*, uChar, 1);
<a name="l00642"></a>00642 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga1ee065c873d2ce8d8d40538f80ea001e" title="QVision wrapper function for IPP&amp;#39;s ippiSubC_8u_C1RSfs.">SubC</a>, <span class="keyword">operator</span>-, uChar, 1);
<a name="l00643"></a>00643 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga8d63a381e75d25e92bb083eddbcf0961" title="Divides pixel values of a source image by a constant and places the scaled results...">DivC</a>, <span class="keyword">operator</span>/, uChar, 1);
<a name="l00644"></a>00644 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga79125dd2c16c07ab21c9bf8ca78a7583" title="QVision wrapper function for IPP&amp;#39;s ippiAddC_8u_C1RSfs.">AddC</a>, <span class="keyword">operator</span>+, uShort, 1);
<a name="l00645"></a>00645 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#gadc8a14bd103bb45afa43950ce454f2fd" title="Adds, subtracts, or multiplies pixel values of an image and a constant, and places...">MulC</a>, <span class="keyword">operator</span>*, uShort, 1);
<a name="l00646"></a>00646 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga1ee065c873d2ce8d8d40538f80ea001e" title="QVision wrapper function for IPP&amp;#39;s ippiSubC_8u_C1RSfs.">SubC</a>, <span class="keyword">operator</span>-, uShort, 1);
<a name="l00647"></a>00647 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga8d63a381e75d25e92bb083eddbcf0961" title="Divides pixel values of a source image by a constant and places the scaled results...">DivC</a>, <span class="keyword">operator</span>/, uShort, 1);
<a name="l00648"></a>00648 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga79125dd2c16c07ab21c9bf8ca78a7583" title="QVision wrapper function for IPP&amp;#39;s ippiAddC_8u_C1RSfs.">AddC</a>, <span class="keyword">operator</span>+, sShort, 1);
<a name="l00649"></a>00649 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#gadc8a14bd103bb45afa43950ce454f2fd" title="Adds, subtracts, or multiplies pixel values of an image and a constant, and places...">MulC</a>, <span class="keyword">operator</span>*, sShort, 1);
<a name="l00650"></a>00650 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga1ee065c873d2ce8d8d40538f80ea001e" title="QVision wrapper function for IPP&amp;#39;s ippiSubC_8u_C1RSfs.">SubC</a>, <span class="keyword">operator</span>-, sShort, 1);
<a name="l00651"></a>00651 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga8d63a381e75d25e92bb083eddbcf0961" title="Divides pixel values of a source image by a constant and places the scaled results...">DivC</a>, <span class="keyword">operator</span>/, sShort, 1);
<a name="l00652"></a>00652 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga79125dd2c16c07ab21c9bf8ca78a7583" title="QVision wrapper function for IPP&amp;#39;s ippiAddC_8u_C1RSfs.">AddC</a>, <span class="keyword">operator</span>+, sFloat, 1);
<a name="l00653"></a>00653 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#gadc8a14bd103bb45afa43950ce454f2fd" title="Adds, subtracts, or multiplies pixel values of an image and a constant, and places...">MulC</a>, <span class="keyword">operator</span>*, sFloat, 1);
<a name="l00654"></a>00654 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga1ee065c873d2ce8d8d40538f80ea001e" title="QVision wrapper function for IPP&amp;#39;s ippiSubC_8u_C1RSfs.">SubC</a>, <span class="keyword">operator</span>-, sFloat, 1);
<a name="l00655"></a>00655 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga8d63a381e75d25e92bb083eddbcf0961" title="Divides pixel values of a source image by a constant and places the scaled results...">DivC</a>, <span class="keyword">operator</span>/, sFloat, 1);
<a name="l00656"></a>00656 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaa272533bb737b850a681adfd2b93180a" title="QVision wrapper function for IPP&amp;#39;s ippiLShiftC_8u_C1R.">LShiftC</a>, <span class="keyword">operator</span>&lt;&lt;, uChar, 1);
<a name="l00657"></a>00657 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga12d66f301cb06d19388d3e59b9ee20b7" title="QVision wrapper function for IPP&amp;#39;s ippiRShiftC_8u_C1R.">RShiftC</a>, <span class="keyword">operator</span>&gt;&gt;, uChar, 1);
<a name="l00658"></a>00658 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaa272533bb737b850a681adfd2b93180a" title="QVision wrapper function for IPP&amp;#39;s ippiLShiftC_8u_C1R.">LShiftC</a>, <span class="keyword">operator</span>&lt;&lt;, uShort, 1);
<a name="l00659"></a>00659 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga12d66f301cb06d19388d3e59b9ee20b7" title="QVision wrapper function for IPP&amp;#39;s ippiRShiftC_8u_C1R.">RShiftC</a>, <span class="keyword">operator</span>&gt;&gt;, uShort, 1);
<a name="l00660"></a>00660 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaa272533bb737b850a681adfd2b93180a" title="QVision wrapper function for IPP&amp;#39;s ippiLShiftC_8u_C1R.">LShiftC</a>, <span class="keyword">operator</span>&lt;&lt;, sInt, 1);
<a name="l00661"></a>00661 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga12d66f301cb06d19388d3e59b9ee20b7" title="QVision wrapper function for IPP&amp;#39;s ippiRShiftC_8u_C1R.">RShiftC</a>, <span class="keyword">operator</span>&gt;&gt;, sInt, 1);
<a name="l00662"></a>00662 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga2f1da78d1e68b39a8462228bc78d5343" title="QVision wrapper function for IPP&amp;#39;s ippiAndC_8u_C1R.">AndC</a>, <span class="keyword">operator</span>&amp;, uChar, 1);
<a name="l00663"></a>00663 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga4677036234afa163f05ae161104ff086" title="QVision wrapper function for IPP&amp;#39;s ippiOrC_8u_C1R.">OrC</a>, <span class="keyword">operator</span>|, uChar, 1);
<a name="l00664"></a>00664 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf5e86b41fc6e6c893709f6b0b639322e" title="QVision wrapper function for IPP&amp;#39;s ippiXorC_8u_C1R.">XorC</a>, <span class="keyword">operator</span>^, uChar, 1);
<a name="l00665"></a>00665 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga2f1da78d1e68b39a8462228bc78d5343" title="QVision wrapper function for IPP&amp;#39;s ippiAndC_8u_C1R.">AndC</a>, <span class="keyword">operator</span>&amp;, uShort, 1);
<a name="l00666"></a>00666 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga4677036234afa163f05ae161104ff086" title="QVision wrapper function for IPP&amp;#39;s ippiOrC_8u_C1R.">OrC</a>, <span class="keyword">operator</span>|, uShort, 1);
<a name="l00667"></a>00667 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf5e86b41fc6e6c893709f6b0b639322e" title="QVision wrapper function for IPP&amp;#39;s ippiXorC_8u_C1R.">XorC</a>, <span class="keyword">operator</span>^, uShort, 1);
<a name="l00668"></a>00668 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga2f1da78d1e68b39a8462228bc78d5343" title="QVision wrapper function for IPP&amp;#39;s ippiAndC_8u_C1R.">AndC</a>, <span class="keyword">operator</span>&amp;, sInt, 1);
<a name="l00669"></a>00669 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga4677036234afa163f05ae161104ff086" title="QVision wrapper function for IPP&amp;#39;s ippiOrC_8u_C1R.">OrC</a>, <span class="keyword">operator</span>|, sInt, 1);
<a name="l00670"></a>00670 CREATE_CONST_OPERATOR(<a class="code" href="group__qvippIAALO.html#gaf5e86b41fc6e6c893709f6b0b639322e" title="QVision wrapper function for IPP&amp;#39;s ippiXorC_8u_C1R.">XorC</a>, <span class="keyword">operator</span>^, sInt, 1);
<a name="l00671"></a>00671 <span class="preprocessor">#endif</span>
<a name="l00672"></a>00672 <span class="preprocessor"></span>
<a name="l00674"></a>00674 
<a name="l00675"></a>00675 <span class="preprocessor">#define CREATE_CONST_OPERATOR_C3(NAME, OPERATOR, TYPE, C)                       \</span>
<a name="l00676"></a>00676 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, C&gt; QVImage&lt;TYPE,C&gt;::OPERATOR(const TYPE value) const  \</span>
<a name="l00677"></a>00677 <span class="preprocessor">        {                                                                       \</span>
<a name="l00678"></a>00678 <span class="preprocessor">        const TYPE values[3] = { value, value, value };                         \</span>
<a name="l00679"></a>00679 <span class="preprocessor">        QVImage&lt;TYPE, C&gt; result = *this;                                        \</span>
<a name="l00680"></a>00680 <span class="preprocessor">        NAME(*this, values, result);                                            \</span>
<a name="l00681"></a>00681 <span class="preprocessor">        return result;                                                          \</span>
<a name="l00682"></a>00682 <span class="preprocessor">        }</span>
<a name="l00683"></a>00683 <span class="preprocessor"></span>
<a name="l00684"></a>00684 <span class="preprocessor">#ifdef QVIPP</span>
<a name="l00685"></a>00685 <span class="preprocessor"></span>CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga79125dd2c16c07ab21c9bf8ca78a7583" title="QVision wrapper function for IPP&amp;#39;s ippiAddC_8u_C1RSfs.">AddC</a>, <span class="keyword">operator</span>+, uChar, 3);
<a name="l00686"></a>00686 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#gadc8a14bd103bb45afa43950ce454f2fd" title="Adds, subtracts, or multiplies pixel values of an image and a constant, and places...">MulC</a>, <span class="keyword">operator</span>*, uChar, 3);
<a name="l00687"></a>00687 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga1ee065c873d2ce8d8d40538f80ea001e" title="QVision wrapper function for IPP&amp;#39;s ippiSubC_8u_C1RSfs.">SubC</a>, <span class="keyword">operator</span>-, uChar, 3);
<a name="l00688"></a>00688 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga8d63a381e75d25e92bb083eddbcf0961" title="Divides pixel values of a source image by a constant and places the scaled results...">DivC</a>, <span class="keyword">operator</span>/, uChar, 3);
<a name="l00689"></a>00689 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga79125dd2c16c07ab21c9bf8ca78a7583" title="QVision wrapper function for IPP&amp;#39;s ippiAddC_8u_C1RSfs.">AddC</a>, <span class="keyword">operator</span>+, sShort, 3);
<a name="l00690"></a>00690 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#gadc8a14bd103bb45afa43950ce454f2fd" title="Adds, subtracts, or multiplies pixel values of an image and a constant, and places...">MulC</a>, <span class="keyword">operator</span>*, sShort, 3);
<a name="l00691"></a>00691 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga1ee065c873d2ce8d8d40538f80ea001e" title="QVision wrapper function for IPP&amp;#39;s ippiSubC_8u_C1RSfs.">SubC</a>, <span class="keyword">operator</span>-, sShort, 3);
<a name="l00692"></a>00692 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga8d63a381e75d25e92bb083eddbcf0961" title="Divides pixel values of a source image by a constant and places the scaled results...">DivC</a>, <span class="keyword">operator</span>/, sShort, 3);
<a name="l00693"></a>00693 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga79125dd2c16c07ab21c9bf8ca78a7583" title="QVision wrapper function for IPP&amp;#39;s ippiAddC_8u_C1RSfs.">AddC</a>, <span class="keyword">operator</span>+, uShort, 3);
<a name="l00694"></a>00694 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#gadc8a14bd103bb45afa43950ce454f2fd" title="Adds, subtracts, or multiplies pixel values of an image and a constant, and places...">MulC</a>, <span class="keyword">operator</span>*, uShort, 3);
<a name="l00695"></a>00695 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga1ee065c873d2ce8d8d40538f80ea001e" title="QVision wrapper function for IPP&amp;#39;s ippiSubC_8u_C1RSfs.">SubC</a>, <span class="keyword">operator</span>-, uShort, 3);
<a name="l00696"></a>00696 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga8d63a381e75d25e92bb083eddbcf0961" title="Divides pixel values of a source image by a constant and places the scaled results...">DivC</a>, <span class="keyword">operator</span>/, uShort, 3);
<a name="l00697"></a>00697 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga79125dd2c16c07ab21c9bf8ca78a7583" title="QVision wrapper function for IPP&amp;#39;s ippiAddC_8u_C1RSfs.">AddC</a>, <span class="keyword">operator</span>+, sFloat, 3);
<a name="l00698"></a>00698 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#gadc8a14bd103bb45afa43950ce454f2fd" title="Adds, subtracts, or multiplies pixel values of an image and a constant, and places...">MulC</a>, <span class="keyword">operator</span>*, sFloat, 3);
<a name="l00699"></a>00699 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga1ee065c873d2ce8d8d40538f80ea001e" title="QVision wrapper function for IPP&amp;#39;s ippiSubC_8u_C1RSfs.">SubC</a>, <span class="keyword">operator</span>-, sFloat, 3);
<a name="l00700"></a>00700 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga8d63a381e75d25e92bb083eddbcf0961" title="Divides pixel values of a source image by a constant and places the scaled results...">DivC</a>, <span class="keyword">operator</span>/, sFloat, 3);
<a name="l00701"></a>00701 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga2f1da78d1e68b39a8462228bc78d5343" title="QVision wrapper function for IPP&amp;#39;s ippiAndC_8u_C1R.">AndC</a>, <span class="keyword">operator</span>&amp;, uChar, 3);
<a name="l00702"></a>00702 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga4677036234afa163f05ae161104ff086" title="QVision wrapper function for IPP&amp;#39;s ippiOrC_8u_C1R.">OrC</a>, <span class="keyword">operator</span>|, uChar, 3);
<a name="l00703"></a>00703 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#gaf5e86b41fc6e6c893709f6b0b639322e" title="QVision wrapper function for IPP&amp;#39;s ippiXorC_8u_C1R.">XorC</a>, <span class="keyword">operator</span>^, uChar, 3);
<a name="l00704"></a>00704 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga2f1da78d1e68b39a8462228bc78d5343" title="QVision wrapper function for IPP&amp;#39;s ippiAndC_8u_C1R.">AndC</a>, <span class="keyword">operator</span>&amp;, uShort, 3);
<a name="l00705"></a>00705 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga4677036234afa163f05ae161104ff086" title="QVision wrapper function for IPP&amp;#39;s ippiOrC_8u_C1R.">OrC</a>, <span class="keyword">operator</span>|, uShort, 3);
<a name="l00706"></a>00706 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#gaf5e86b41fc6e6c893709f6b0b639322e" title="QVision wrapper function for IPP&amp;#39;s ippiXorC_8u_C1R.">XorC</a>, <span class="keyword">operator</span>^, uShort, 3);
<a name="l00707"></a>00707 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga2f1da78d1e68b39a8462228bc78d5343" title="QVision wrapper function for IPP&amp;#39;s ippiAndC_8u_C1R.">AndC</a>, <span class="keyword">operator</span>&amp;, sInt, 3);
<a name="l00708"></a>00708 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#ga4677036234afa163f05ae161104ff086" title="QVision wrapper function for IPP&amp;#39;s ippiOrC_8u_C1R.">OrC</a>, <span class="keyword">operator</span>|, sInt, 3);
<a name="l00709"></a>00709 CREATE_CONST_OPERATOR_C3(<a class="code" href="group__qvippIAALO.html#gaf5e86b41fc6e6c893709f6b0b639322e" title="QVision wrapper function for IPP&amp;#39;s ippiXorC_8u_C1R.">XorC</a>, <span class="keyword">operator</span>^, sInt, 3);
<a name="l00710"></a>00710 <span class="preprocessor">#endif</span>
<a name="l00711"></a>00711 <span class="preprocessor"></span>
<a name="l00712"></a>00712 <span class="preprocessor">#define CREATE_CONST_OPERATOR_C4(NAME, OPERATOR, TYPE, C)                       \</span>
<a name="l00713"></a>00713 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, C&gt; QVImage&lt;TYPE,C&gt;::OPERATOR(const TYPE value) const  \</span>
<a name="l00714"></a>00714 <span class="preprocessor">        {                                                                       \</span>
<a name="l00715"></a>00715 <span class="preprocessor">        const uInt values[3] = { value, value, value };                         \</span>
<a name="l00716"></a>00716 <span class="preprocessor">        QVImage&lt;TYPE, C&gt; result = *this;                                        \</span>
<a name="l00717"></a>00717 <span class="preprocessor">        NAME(*this, values, result);                                            \</span>
<a name="l00718"></a>00718 <span class="preprocessor">        return result;                                                          \</span>
<a name="l00719"></a>00719 <span class="preprocessor">        }</span>
<a name="l00720"></a>00720 <span class="preprocessor"></span>
<a name="l00721"></a>00721 <span class="preprocessor">#ifdef QVIPP</span>
<a name="l00722"></a>00722 <span class="preprocessor"></span>CREATE_CONST_OPERATOR_C4(<a class="code" href="group__qvippIAALO.html#gaa272533bb737b850a681adfd2b93180a" title="QVision wrapper function for IPP&amp;#39;s ippiLShiftC_8u_C1R.">LShiftC</a>, <span class="keyword">operator</span>&lt;&lt;, uChar, 3);
<a name="l00723"></a>00723 CREATE_CONST_OPERATOR_C4(<a class="code" href="group__qvippIAALO.html#ga12d66f301cb06d19388d3e59b9ee20b7" title="QVision wrapper function for IPP&amp;#39;s ippiRShiftC_8u_C1R.">RShiftC</a>, <span class="keyword">operator</span>&gt;&gt;, uChar, 3);
<a name="l00724"></a>00724 CREATE_CONST_OPERATOR_C4(<a class="code" href="group__qvippIAALO.html#gaa272533bb737b850a681adfd2b93180a" title="QVision wrapper function for IPP&amp;#39;s ippiLShiftC_8u_C1R.">LShiftC</a>, <span class="keyword">operator</span>&lt;&lt;, uShort, 3);
<a name="l00725"></a>00725 CREATE_CONST_OPERATOR_C4(<a class="code" href="group__qvippIAALO.html#ga12d66f301cb06d19388d3e59b9ee20b7" title="QVision wrapper function for IPP&amp;#39;s ippiRShiftC_8u_C1R.">RShiftC</a>, <span class="keyword">operator</span>&gt;&gt;, uShort, 3);
<a name="l00726"></a>00726 CREATE_CONST_OPERATOR_C4(<a class="code" href="group__qvippIAALO.html#gaa272533bb737b850a681adfd2b93180a" title="QVision wrapper function for IPP&amp;#39;s ippiLShiftC_8u_C1R.">LShiftC</a>, <span class="keyword">operator</span>&lt;&lt;, sInt, 3);
<a name="l00727"></a>00727 CREATE_CONST_OPERATOR_C4(<a class="code" href="group__qvippIAALO.html#ga12d66f301cb06d19388d3e59b9ee20b7" title="QVision wrapper function for IPP&amp;#39;s ippiRShiftC_8u_C1R.">RShiftC</a>, <span class="keyword">operator</span>&gt;&gt;, sInt, 3);
<a name="l00728"></a>00728 <span class="preprocessor">#endif</span>
<a name="l00729"></a>00729 <span class="preprocessor"></span>
<a name="l00730"></a>00730 <span class="preprocessor">#define CREATE_CONST_OPERATOR_INT_C1(OPERATOR, OPERATION, TYPE)                                                 \</span>
<a name="l00731"></a>00731 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, 1&gt; QVImage&lt;TYPE, 1&gt;::OPERATOR(const TYPE value) const                                 \</span>
<a name="l00732"></a>00732 <span class="preprocessor">        {                                                                                                       \</span>
<a name="l00733"></a>00733 <span class="preprocessor">        QVImage&lt;TYPE, 1&gt; result = *this;                                                                        \</span>
<a name="l00734"></a>00734 <span class="preprocessor">        QVIMAGE_PTR_INIT_READ(TYPE, this);                                                                      \</span>
<a name="l00735"></a>00735 <span class="preprocessor">        QVIMAGE_INIT_WRITE(TYPE, result);                                                                       \</span>
<a name="l00736"></a>00736 <span class="preprocessor">        for (int col = result.getROI().left(); col &lt; result.getROI().right(); col++)                            \</span>
<a name="l00737"></a>00737 <span class="preprocessor">                for (int row = result.getROI().top(); row &lt; result.getROI().bottom(); row++)                    \</span>
<a name="l00738"></a>00738 <span class="preprocessor">                        QVIMAGE_PIXEL(result, col, row, 0) = QVIMAGE_PIXEL(this, col, row, 0) OPERATION value;  \</span>
<a name="l00739"></a>00739 <span class="preprocessor">        return result;                                                                                          \</span>
<a name="l00740"></a>00740 <span class="preprocessor">        }</span>
<a name="l00741"></a>00741 <span class="preprocessor"></span>
<a name="l00742"></a>00742 <span class="preprocessor">#ifdef QVIPP</span>
<a name="l00743"></a>00743 <span class="preprocessor"></span>CREATE_CONST_OPERATOR_INT_C1(<span class="keyword">operator</span>+, +, sInt);
<a name="l00744"></a>00744 CREATE_CONST_OPERATOR_INT_C1(<span class="keyword">operator</span>*, *, sInt);
<a name="l00745"></a>00745 CREATE_CONST_OPERATOR_INT_C1(<span class="keyword">operator</span>-, -, sInt);
<a name="l00746"></a>00746 CREATE_CONST_OPERATOR_INT_C1(<span class="keyword">operator</span>/, /, sInt);
<a name="l00747"></a>00747 <span class="preprocessor">#endif</span>
<a name="l00748"></a>00748 <span class="preprocessor"></span>
<a name="l00749"></a>00749 <span class="preprocessor">#define CREATE_CONST_OPERATOR_INT_C3(OPERATOR, OPERATION, TYPE)                                                 \</span>
<a name="l00750"></a>00750 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, 3&gt; QVImage&lt;TYPE, 3&gt;::OPERATOR(const TYPE value) const                                 \</span>
<a name="l00751"></a>00751 <span class="preprocessor">        {                                                                                                       \</span>
<a name="l00752"></a>00752 <span class="preprocessor">        QVImage&lt;TYPE, 3&gt; result = *this;                                                                        \</span>
<a name="l00753"></a>00753 <span class="preprocessor">        QVIMAGE_PTR_INIT_READ(TYPE, this);                                                                      \</span>
<a name="l00754"></a>00754 <span class="preprocessor">        QVIMAGE_INIT_WRITE(TYPE, result);                                                                       \</span>
<a name="l00755"></a>00755 <span class="preprocessor">        for (int col = result.getROI().left(); col &lt; result.getROI().right(); col++)                            \</span>
<a name="l00756"></a>00756 <span class="preprocessor">                for (int row = result.getROI().top(); row &lt; result.getROI().bottom(); row++)                    \</span>
<a name="l00757"></a>00757 <span class="preprocessor">                        {                                                                                       \</span>
<a name="l00758"></a>00758 <span class="preprocessor">                        QVIMAGE_PIXEL(result, col, row, 0) = QVIMAGE_PIXEL(this, col, row, 0) OPERATION value;  \</span>
<a name="l00759"></a>00759 <span class="preprocessor">                        QVIMAGE_PIXEL(result, col, row, 1) = QVIMAGE_PIXEL(this, col, row, 1) OPERATION value;  \</span>
<a name="l00760"></a>00760 <span class="preprocessor">                        QVIMAGE_PIXEL(result, col, row, 2) = QVIMAGE_PIXEL(this, col, row, 2) OPERATION value;  \</span>
<a name="l00761"></a>00761 <span class="preprocessor">                        }                                                                                       \</span>
<a name="l00762"></a>00762 <span class="preprocessor">        return result;                                                                                          \</span>
<a name="l00763"></a>00763 <span class="preprocessor">        }</span>
<a name="l00764"></a>00764 <span class="preprocessor"></span>
<a name="l00765"></a>00765 <span class="preprocessor">#ifdef QVIPP</span>
<a name="l00766"></a>00766 <span class="preprocessor"></span>CREATE_CONST_OPERATOR_INT_C3(<span class="keyword">operator</span>+, +, sInt);
<a name="l00767"></a>00767 CREATE_CONST_OPERATOR_INT_C3(<span class="keyword">operator</span>*, *, sInt);
<a name="l00768"></a>00768 CREATE_CONST_OPERATOR_INT_C3(<span class="keyword">operator</span>-, -, sInt);
<a name="l00769"></a>00769 CREATE_CONST_OPERATOR_INT_C3(<span class="keyword">operator</span>/, /, sInt);
<a name="l00770"></a>00770 <span class="preprocessor">#endif</span>
<a name="l00771"></a>00771 <span class="preprocessor"></span>
<a name="l00772"></a>00772 <span class="preprocessor">#define CREATE_NOT_OPERATOR(NAME, OPERATOR, TYPE, C)            \</span>
<a name="l00773"></a>00773 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, C&gt; QVImage&lt;TYPE,C&gt;::OPERATOR() const  \</span>
<a name="l00774"></a>00774 <span class="preprocessor">        {                                                       \</span>
<a name="l00775"></a>00775 <span class="preprocessor">        QVImage&lt;TYPE, C&gt; result = *this;                        \</span>
<a name="l00776"></a>00776 <span class="preprocessor">        NAME(*this, result);                                    \</span>
<a name="l00777"></a>00777 <span class="preprocessor">        return result;                                          \</span>
<a name="l00778"></a>00778 <span class="preprocessor">        }</span>
<a name="l00779"></a>00779 <span class="preprocessor"></span>
<a name="l00780"></a>00780 <span class="preprocessor">#ifdef QVIPP</span>
<a name="l00781"></a>00781 <span class="preprocessor"></span>CREATE_NOT_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga0f76ac931b05682dd833a75b8854e805" title="Performs corresponding bitwise logical operation between pixels of two image (AndC...">Not</a>, <span class="keyword">operator</span>!, uChar, 1);
<a name="l00782"></a>00782 CREATE_NOT_OPERATOR(<a class="code" href="group__qvippIAALO.html#ga0f76ac931b05682dd833a75b8854e805" title="Performs corresponding bitwise logical operation between pixels of two image (AndC...">Not</a>, <span class="keyword">operator</span>!, uChar, 3);
<a name="l00783"></a>00783 <span class="preprocessor">#endif</span>
<a name="l00784"></a>00784 <span class="preprocessor"></span>
<a name="l00785"></a>00785 <span class="preprocessor">#define CREATE_COMPARE_OPERATOR(NAME, OPERATOR, CMP, TYPE, C)                           \</span>
<a name="l00786"></a>00786 <span class="preprocessor">template &lt;&gt; QVImage&lt;uChar&gt; QVImage&lt;TYPE,C&gt;::OPERATOR(const QVImage&lt;TYPE, C&gt; &amp;img) const \</span>
<a name="l00787"></a>00787 <span class="preprocessor">        {                                                                               \</span>
<a name="l00788"></a>00788 <span class="preprocessor">        QVImage&lt;uChar&gt; result(getCols(), getRows());                                    \</span>
<a name="l00789"></a>00789 <span class="preprocessor">        NAME(*this, img, result, CMP);                                                  \</span>
<a name="l00790"></a>00790 <span class="preprocessor">        return result;                                                                  \</span>
<a name="l00791"></a>00791 <span class="preprocessor">        }</span>
<a name="l00792"></a>00792 <span class="preprocessor"></span>
<a name="l00793"></a>00793 <span class="preprocessor">#ifdef QVIPP</span>
<a name="l00794"></a>00794 <span class="preprocessor"></span><span class="comment">// ippcmpLess</span>
<a name="l00795"></a>00795 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;, ippCmpLess, uChar, 1);
<a name="l00796"></a>00796 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;, ippCmpLess, uShort, 1);
<a name="l00797"></a>00797 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;, ippCmpLess, sShort, 1);
<a name="l00798"></a>00798 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;, ippCmpLess, sFloat, 1);
<a name="l00799"></a>00799 
<a name="l00800"></a>00800 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;, ippCmpLess, uChar, 3);
<a name="l00801"></a>00801 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;, ippCmpLess, uShort, 3);
<a name="l00802"></a>00802 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;, ippCmpLess, sShort, 3);
<a name="l00803"></a>00803 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;, ippCmpLess, sFloat, 3);
<a name="l00804"></a>00804 
<a name="l00805"></a>00805 <span class="comment">// ippCmpGreater</span>
<a name="l00806"></a>00806 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;, ippCmpGreater, uChar, 1);
<a name="l00807"></a>00807 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;, ippCmpGreater, uShort, 1);
<a name="l00808"></a>00808 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;, ippCmpGreater, sShort, 1);
<a name="l00809"></a>00809 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;, ippCmpGreater, sFloat, 1);
<a name="l00810"></a>00810 
<a name="l00811"></a>00811 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;, ippCmpGreater, uChar, 3);
<a name="l00812"></a>00812 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;, ippCmpGreater, uShort, 3);
<a name="l00813"></a>00813 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;, ippCmpGreater, sShort, 3);
<a name="l00814"></a>00814 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;, ippCmpGreater, sFloat, 3);
<a name="l00815"></a>00815 
<a name="l00816"></a>00816 <span class="comment">// ippcmpLessEq</span>
<a name="l00817"></a>00817 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;=, ippCmpLessEq, uChar, 1);
<a name="l00818"></a>00818 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;=, ippCmpLessEq, uShort, 1);
<a name="l00819"></a>00819 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;=, ippCmpLessEq, sShort, 1);
<a name="l00820"></a>00820 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;=, ippCmpLessEq, sFloat, 1);
<a name="l00821"></a>00821 
<a name="l00822"></a>00822 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;=, ippCmpLessEq, uChar, 3);
<a name="l00823"></a>00823 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;=, ippCmpLessEq, uShort, 3);
<a name="l00824"></a>00824 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;=, ippCmpLessEq, sShort, 3);
<a name="l00825"></a>00825 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&lt;=, ippCmpLessEq, sFloat, 3);
<a name="l00826"></a>00826 
<a name="l00827"></a>00827 <span class="comment">// ippCmpGreaterEq</span>
<a name="l00828"></a>00828 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;=, ippCmpGreaterEq, uChar, 1);
<a name="l00829"></a>00829 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;=, ippCmpGreaterEq, uShort, 1);
<a name="l00830"></a>00830 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;=, ippCmpGreaterEq, sShort, 1);
<a name="l00831"></a>00831 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;=, ippCmpGreaterEq, sFloat, 1);
<a name="l00832"></a>00832 
<a name="l00833"></a>00833 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;=, ippCmpGreaterEq, uChar, 3);
<a name="l00834"></a>00834 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;=, ippCmpGreaterEq, uShort, 3);
<a name="l00835"></a>00835 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;=, ippCmpGreaterEq, sShort, 3);
<a name="l00836"></a>00836 CREATE_COMPARE_OPERATOR(<a class="code" href="group__qvippIDEAIF.html#ga789d10ddee1fa559a9cf44e8628801eb" title="Compares pixel values of two images using a specified compare operation.">Compare</a>, <span class="keyword">operator</span>&gt;=, ippCmpGreaterEq, sFloat, 3);
<a name="l00837"></a>00837 <span class="preprocessor">#endif</span>
<a name="l00838"></a>00838 <span class="preprocessor"></span>
<a name="l00839"></a>00839 <span class="preprocessor">#define CREATE_GENERIC_COMPARE_OPERATOR_C1(OPERATOR, OPERATION, TYPE1, TYPE2)                           \</span>
<a name="l00840"></a>00840 <span class="preprocessor">template &lt;&gt; QVImage&lt;uChar&gt; QVImage&lt;TYPE1, 1&gt;::OPERATOR(const QVImage&lt;TYPE2, 1&gt; &amp;img) const              \</span>
<a name="l00841"></a>00841 <span class="preprocessor">        {                                                                                               \</span>
<a name="l00842"></a>00842 <span class="preprocessor">        QVImage&lt;uChar&gt; result(getCols(), getRows());                                                    \</span>
<a name="l00843"></a>00843 <span class="preprocessor">        result.setROI(getROI()); result.setAnchor(getAnchor());                                         \</span>
<a name="l00844"></a>00844 <span class="preprocessor">        QVIMAGE_PTR_INIT_READ(TYPE1, this);                                                             \</span>
<a name="l00845"></a>00845 <span class="preprocessor">        QVIMAGE_INIT_READ(TYPE2, img);                                                                  \</span>
<a name="l00846"></a>00846 <span class="preprocessor">        QVIMAGE_INIT_WRITE(uChar, result);                                                              \</span>
<a name="l00847"></a>00847 <span class="preprocessor">        for (int col = result.getROI().left(); col &lt; result.getROI().right(); col++)                    \</span>
<a name="l00848"></a>00848 <span class="preprocessor">                for (int row = result.getROI().top(); row &lt; result.getROI().bottom(); row++)            \</span>
<a name="l00849"></a>00849 <span class="preprocessor">                        if (QVIMAGE_PIXEL(this, col, row, 0) OPERATION QVIMAGE_PIXEL(img, col, row, 0)) \</span>
<a name="l00850"></a>00850 <span class="preprocessor">                                QVIMAGE_PIXEL(result, col, row, 0) = IPP_MAX_8U;                        \</span>
<a name="l00851"></a>00851 <span class="preprocessor">                        else    QVIMAGE_PIXEL(result, col, row, 0) = 0;                                 \</span>
<a name="l00852"></a>00852 <span class="preprocessor">        return result;                                                                                  \</span>
<a name="l00853"></a>00853 <span class="preprocessor">        }</span>
<a name="l00854"></a>00854 <span class="preprocessor"></span>
<a name="l00855"></a>00855 <span class="preprocessor">#ifdef QVIPP</span>
<a name="l00856"></a>00856 <span class="preprocessor"></span>CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, uChar, uShort);
<a name="l00857"></a>00857 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, uChar, uShort);
<a name="l00858"></a>00858 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, uChar, uShort);
<a name="l00859"></a>00859 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, uChar, uShort);
<a name="l00860"></a>00860 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, uChar, sShort);
<a name="l00861"></a>00861 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, uChar, sShort);
<a name="l00862"></a>00862 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, uChar, sShort);
<a name="l00863"></a>00863 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, uChar, sShort);
<a name="l00864"></a>00864 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, uChar, sInt);
<a name="l00865"></a>00865 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, uChar, sInt);
<a name="l00866"></a>00866 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, uChar, sInt);
<a name="l00867"></a>00867 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, uChar, sInt);
<a name="l00868"></a>00868 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, uChar, sFloat);
<a name="l00869"></a>00869 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, uChar, sFloat);
<a name="l00870"></a>00870 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, uChar, sFloat);
<a name="l00871"></a>00871 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, uChar, sFloat);
<a name="l00872"></a>00872 
<a name="l00873"></a>00873 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, uShort, uChar);
<a name="l00874"></a>00874 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, uShort, uChar);
<a name="l00875"></a>00875 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, uShort, uChar);
<a name="l00876"></a>00876 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, uShort, uChar);
<a name="l00877"></a>00877 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, uShort, sShort);
<a name="l00878"></a>00878 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, uShort, sShort);
<a name="l00879"></a>00879 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, uShort, sShort);
<a name="l00880"></a>00880 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, uShort, sShort);
<a name="l00881"></a>00881 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, uShort, sInt);
<a name="l00882"></a>00882 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, uShort, sInt);
<a name="l00883"></a>00883 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, uShort, sInt);
<a name="l00884"></a>00884 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, uShort, sInt);
<a name="l00885"></a>00885 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, uShort, sFloat);
<a name="l00886"></a>00886 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, uShort, sFloat);
<a name="l00887"></a>00887 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, uShort, sFloat);
<a name="l00888"></a>00888 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, uShort, sFloat);
<a name="l00889"></a>00889 
<a name="l00890"></a>00890 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, sShort, uChar);
<a name="l00891"></a>00891 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, sShort, uChar);
<a name="l00892"></a>00892 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, sShort, uChar);
<a name="l00893"></a>00893 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, sShort, uChar);
<a name="l00894"></a>00894 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, sShort, uShort);
<a name="l00895"></a>00895 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, sShort, uShort);
<a name="l00896"></a>00896 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, sShort, uShort);
<a name="l00897"></a>00897 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, sShort, uShort);
<a name="l00898"></a>00898 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, sShort, sInt);
<a name="l00899"></a>00899 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, sShort, sInt);
<a name="l00900"></a>00900 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, sShort, sInt);
<a name="l00901"></a>00901 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, sShort, sInt);
<a name="l00902"></a>00902 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, sShort, sFloat);
<a name="l00903"></a>00903 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, sShort, sFloat);
<a name="l00904"></a>00904 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, sShort, sFloat);
<a name="l00905"></a>00905 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, sShort, sFloat);
<a name="l00906"></a>00906 
<a name="l00907"></a>00907 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, sInt, uChar);
<a name="l00908"></a>00908 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, sInt, uChar);
<a name="l00909"></a>00909 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, sInt, uChar);
<a name="l00910"></a>00910 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, sInt, uChar);
<a name="l00911"></a>00911 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, sInt, uShort);
<a name="l00912"></a>00912 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, sInt, uShort);
<a name="l00913"></a>00913 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, sInt, uShort);
<a name="l00914"></a>00914 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, sInt, uShort);
<a name="l00915"></a>00915 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, sInt, sShort);
<a name="l00916"></a>00916 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, sInt, sShort);
<a name="l00917"></a>00917 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, sInt, sShort);
<a name="l00918"></a>00918 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, sInt, sShort);
<a name="l00919"></a>00919 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, sInt, sInt);
<a name="l00920"></a>00920 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, sInt, sInt);
<a name="l00921"></a>00921 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, sInt, sInt);
<a name="l00922"></a>00922 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, sInt, sInt);
<a name="l00923"></a>00923 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, sInt, sFloat);
<a name="l00924"></a>00924 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, sInt, sFloat);
<a name="l00925"></a>00925 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, sInt, sFloat);
<a name="l00926"></a>00926 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, sInt, sFloat);
<a name="l00927"></a>00927 
<a name="l00928"></a>00928 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, sFloat, uChar);
<a name="l00929"></a>00929 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, sFloat, uChar);
<a name="l00930"></a>00930 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, sFloat, uChar);
<a name="l00931"></a>00931 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, sFloat, uChar);
<a name="l00932"></a>00932 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, sFloat, uShort);
<a name="l00933"></a>00933 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, sFloat, uShort);
<a name="l00934"></a>00934 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, sFloat, uShort);
<a name="l00935"></a>00935 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, sFloat, uShort);
<a name="l00936"></a>00936 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, sFloat, sShort);
<a name="l00937"></a>00937 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, sFloat, sShort);
<a name="l00938"></a>00938 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, sFloat, sShort);
<a name="l00939"></a>00939 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, sFloat, sShort);
<a name="l00940"></a>00940 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;, &lt;, sFloat, sInt);
<a name="l00941"></a>00941 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;, &gt;, sFloat, sInt);
<a name="l00942"></a>00942 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&lt;=, &lt;=, sFloat, sInt);
<a name="l00943"></a>00943 CREATE_GENERIC_COMPARE_OPERATOR_C1(<span class="keyword">operator</span>&gt;=, &gt;=, sFloat, sInt);
<a name="l00944"></a>00944 <span class="preprocessor">#endif</span>
<a name="l00945"></a>00945 <span class="preprocessor"></span>
<a name="l00946"></a>00946 <span class="preprocessor">#define CREATE_GENERIC_COMPARE_OPERATOR_C3(OPERATOR, OPERATION, TYPE1, TYPE2)                                   \</span>
<a name="l00947"></a>00947 <span class="preprocessor">template &lt;&gt; QVImage&lt;uChar&gt; QVImage&lt;TYPE1, 3&gt;::OPERATOR(const QVImage&lt;TYPE2, 3&gt; &amp;img) const                      \</span>
<a name="l00948"></a>00948 <span class="preprocessor">        {                                                                                                       \</span>
<a name="l00949"></a>00949 <span class="preprocessor">        QVImage&lt;uChar&gt; result(getCols(), getRows());                                                            \</span>
<a name="l00950"></a>00950 <span class="preprocessor">        result.setROI(getROI()); result.setAnchor(getAnchor());                                                 \</span>
<a name="l00951"></a>00951 <span class="preprocessor">        QVIMAGE_PTR_INIT_READ(TYPE1, this);                                                                     \</span>
<a name="l00952"></a>00952 <span class="preprocessor">        QVIMAGE_INIT_READ(TYPE2, img);                                                                          \</span>
<a name="l00953"></a>00953 <span class="preprocessor">        QVIMAGE_INIT_WRITE(uChar, result);                                                                      \</span>
<a name="l00954"></a>00954 <span class="preprocessor">        for (int col = result.getROI().left(); col &lt; result.getROI().right(); col++)                            \</span>
<a name="l00955"></a>00955 <span class="preprocessor">                for (int row = result.getROI().top(); row &lt; result.getROI().bottom(); row++)                    \</span>
<a name="l00956"></a>00956 <span class="preprocessor">                        {                                                                                       \</span>
<a name="l00957"></a>00957 <span class="preprocessor">                        if( (QVIMAGE_PIXEL(this, col, row, 0) OPERATION QVIMAGE_PIXEL(img, col, row, 0)) &amp;&amp;     \</span>
<a name="l00958"></a>00958 <span class="preprocessor">                            (QVIMAGE_PIXEL(this, col, row, 1) OPERATION QVIMAGE_PIXEL(img, col, row, 1)) &amp;&amp;     \</span>
<a name="l00959"></a>00959 <span class="preprocessor">                            (QVIMAGE_PIXEL(this, col, row, 2) OPERATION QVIMAGE_PIXEL(img, col, row, 2))    )   \</span>
<a name="l00960"></a>00960 <span class="preprocessor">                                QVIMAGE_PIXEL(result, col, row, 0) = IPP_MAX_8U;                                \</span>
<a name="l00961"></a>00961 <span class="preprocessor">                        else    QVIMAGE_PIXEL(result, col, row, 0) = 0;                                         \</span>
<a name="l00962"></a>00962 <span class="preprocessor">                        }                                                                                       \</span>
<a name="l00963"></a>00963 <span class="preprocessor">        return result;                                                                                          \</span>
<a name="l00964"></a>00964 <span class="preprocessor">        }</span>
<a name="l00965"></a>00965 <span class="preprocessor"></span>
<a name="l00966"></a>00966 <span class="preprocessor">#ifdef QVIPP</span>
<a name="l00967"></a>00967 <span class="preprocessor"></span>CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, uChar, uShort);
<a name="l00968"></a>00968 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, uChar, uShort);
<a name="l00969"></a>00969 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, uChar, uShort);
<a name="l00970"></a>00970 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, uChar, uShort);
<a name="l00971"></a>00971 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, uChar, sShort);
<a name="l00972"></a>00972 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, uChar, sShort);
<a name="l00973"></a>00973 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, uChar, sShort);
<a name="l00974"></a>00974 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, uChar, sShort);
<a name="l00975"></a>00975 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, uChar, sInt);
<a name="l00976"></a>00976 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, uChar, sInt);
<a name="l00977"></a>00977 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, uChar, sInt);
<a name="l00978"></a>00978 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, uChar, sInt);
<a name="l00979"></a>00979 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, uChar, sFloat);
<a name="l00980"></a>00980 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, uChar, sFloat);
<a name="l00981"></a>00981 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, uChar, sFloat);
<a name="l00982"></a>00982 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, uChar, sFloat);
<a name="l00983"></a>00983 
<a name="l00984"></a>00984 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, uShort, uChar);
<a name="l00985"></a>00985 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, uShort, uChar);
<a name="l00986"></a>00986 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, uShort, uChar);
<a name="l00987"></a>00987 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, uShort, uChar);
<a name="l00988"></a>00988 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, uShort, sShort);
<a name="l00989"></a>00989 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, uShort, sShort);
<a name="l00990"></a>00990 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, uShort, sShort);
<a name="l00991"></a>00991 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, uShort, sShort);
<a name="l00992"></a>00992 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, uShort, sInt);
<a name="l00993"></a>00993 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, uShort, sInt);
<a name="l00994"></a>00994 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, uShort, sInt);
<a name="l00995"></a>00995 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, uShort, sInt);
<a name="l00996"></a>00996 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, uShort, sFloat);
<a name="l00997"></a>00997 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, uShort, sFloat);
<a name="l00998"></a>00998 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, uShort, sFloat);
<a name="l00999"></a>00999 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, uShort, sFloat);
<a name="l01000"></a>01000 
<a name="l01001"></a>01001 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, sShort, uChar);
<a name="l01002"></a>01002 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, sShort, uChar);
<a name="l01003"></a>01003 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, sShort, uChar);
<a name="l01004"></a>01004 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, sShort, uChar);
<a name="l01005"></a>01005 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, sShort, uShort);
<a name="l01006"></a>01006 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, sShort, uShort);
<a name="l01007"></a>01007 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, sShort, uShort);
<a name="l01008"></a>01008 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, sShort, uShort);
<a name="l01009"></a>01009 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, sShort, sInt);
<a name="l01010"></a>01010 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, sShort, sInt);
<a name="l01011"></a>01011 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, sShort, sInt);
<a name="l01012"></a>01012 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, sShort, sInt);
<a name="l01013"></a>01013 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, sShort, sFloat);
<a name="l01014"></a>01014 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, sShort, sFloat);
<a name="l01015"></a>01015 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, sShort, sFloat);
<a name="l01016"></a>01016 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, sShort, sFloat);
<a name="l01017"></a>01017 
<a name="l01018"></a>01018 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, sInt, uChar);
<a name="l01019"></a>01019 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, sInt, uChar);
<a name="l01020"></a>01020 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, sInt, uChar);
<a name="l01021"></a>01021 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, sInt, uChar);
<a name="l01022"></a>01022 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, sInt, uShort);
<a name="l01023"></a>01023 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, sInt, uShort);
<a name="l01024"></a>01024 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, sInt, uShort);
<a name="l01025"></a>01025 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, sInt, uShort);
<a name="l01026"></a>01026 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, sInt, sShort);
<a name="l01027"></a>01027 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, sInt, sShort);
<a name="l01028"></a>01028 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, sInt, sShort);
<a name="l01029"></a>01029 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, sInt, sShort);
<a name="l01030"></a>01030 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, sInt, sInt);
<a name="l01031"></a>01031 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, sInt, sInt);
<a name="l01032"></a>01032 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, sInt, sInt);
<a name="l01033"></a>01033 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, sInt, sInt);
<a name="l01034"></a>01034 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, sInt, sFloat);
<a name="l01035"></a>01035 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, sInt, sFloat);
<a name="l01036"></a>01036 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, sInt, sFloat);
<a name="l01037"></a>01037 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, sInt, sFloat);
<a name="l01038"></a>01038 
<a name="l01039"></a>01039 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, sFloat, uChar);
<a name="l01040"></a>01040 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, sFloat, uChar);
<a name="l01041"></a>01041 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, sFloat, uChar);
<a name="l01042"></a>01042 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, sFloat, uChar);
<a name="l01043"></a>01043 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, sFloat, uShort);
<a name="l01044"></a>01044 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, sFloat, uShort);
<a name="l01045"></a>01045 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, sFloat, uShort);
<a name="l01046"></a>01046 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, sFloat, uShort);
<a name="l01047"></a>01047 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, sFloat, sShort);
<a name="l01048"></a>01048 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, sFloat, sShort);
<a name="l01049"></a>01049 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, sFloat, sShort);
<a name="l01050"></a>01050 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, sFloat, sShort);
<a name="l01051"></a>01051 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;, &lt;, sFloat, sInt);
<a name="l01052"></a>01052 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;, &gt;, sFloat, sInt);
<a name="l01053"></a>01053 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&lt;=, &lt;=, sFloat, sInt);
<a name="l01054"></a>01054 CREATE_GENERIC_COMPARE_OPERATOR_C3(<span class="keyword">operator</span>&gt;=, &gt;=, sFloat, sInt);
<a name="l01055"></a>01055 <span class="preprocessor">#endif</span>
<a name="l01056"></a>01056 <span class="preprocessor"></span>
<a name="l01057"></a>01057 <span class="comment">// Set FUNCTION</span>
<a name="l01058"></a>01058 <span class="preprocessor">#define CREATE_SET_FUNCTION_C1(TYPE)                            \</span>
<a name="l01059"></a>01059 <span class="preprocessor">template &lt;&gt; void QVImage&lt;TYPE&gt;::set(TYPE c1, TYPE, TYPE)        \</span>
<a name="l01060"></a>01060 <span class="preprocessor">        { Set(c1, *this); }</span>
<a name="l01061"></a>01061 <span class="preprocessor"></span>
<a name="l01062"></a>01062 CREATE_SET_FUNCTION_C1(uChar);
<a name="l01063"></a>01063 CREATE_SET_FUNCTION_C1(uShort);
<a name="l01064"></a>01064 CREATE_SET_FUNCTION_C1(sShort);
<a name="l01065"></a>01065 CREATE_SET_FUNCTION_C1(sInt);
<a name="l01066"></a>01066 CREATE_SET_FUNCTION_C1(sFloat);
<a name="l01067"></a>01067 
<a name="l01068"></a>01068 <span class="preprocessor">#define CREATE_SET_FUNCTION_C3(TYPE)                                    \</span>
<a name="l01069"></a>01069 <span class="preprocessor">template &lt;&gt; void QVImage&lt;TYPE,3&gt;::set(TYPE c1, TYPE c2, TYPE c3)        \</span>
<a name="l01070"></a>01070 <span class="preprocessor">        {                                                               \</span>
<a name="l01071"></a>01071 <span class="preprocessor">        const TYPE values[3] = { c1, c2, c3 };                          \</span>
<a name="l01072"></a>01072 <span class="preprocessor">        Set(values, *this);                                             \</span>
<a name="l01073"></a>01073 <span class="preprocessor">        }</span>
<a name="l01074"></a>01074 <span class="preprocessor"></span>
<a name="l01075"></a>01075 CREATE_SET_FUNCTION_C3(uChar);
<a name="l01076"></a>01076 CREATE_SET_FUNCTION_C3(uShort);
<a name="l01077"></a>01077 CREATE_SET_FUNCTION_C3(sShort);
<a name="l01078"></a>01078 CREATE_SET_FUNCTION_C3(sInt);
<a name="l01079"></a>01079 CREATE_SET_FUNCTION_C3(sFloat);
<a name="l01080"></a>01080 
<a name="l01082"></a>01082 <span class="comment">// operator =</span>
<a name="l01083"></a>01083 <span class="preprocessor">#define CREATE_CONVERT_OPERATOR(TYPE1, TYPE2, C)                                                \</span>
<a name="l01084"></a>01084 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE2, C&gt; &amp; QVImage&lt;TYPE2, C&gt;::operator=(const QVImage&lt;TYPE1, C&gt; &amp;img)      \</span>
<a name="l01085"></a>01085 <span class="preprocessor">        {                                                                                       \</span>
<a name="l01086"></a>01086 <span class="preprocessor">        imageBuffer = new QVImageBuffer&lt;TYPE2&gt;(C*img.getCols(), img.getRows());         \</span>
<a name="l01087"></a>01087 <span class="preprocessor">        setAnchor(img.getROI().x(),img.getROI().y());                                           \</span>
<a name="l01088"></a>01088 <span class="preprocessor">        Convert(img, *this);                                                                    \</span>
<a name="l01089"></a>01089 <span class="preprocessor">        setROI(img.getROI()); setAnchor(img.getAnchor());                                       \</span>
<a name="l01090"></a>01090 <span class="preprocessor">        step_div_type_size = getStep()/sizeof(TYPE2);                                           \</span>
<a name="l01091"></a>01091 <span class="preprocessor">        return *this;                                                                           \</span>
<a name="l01092"></a>01092 <span class="preprocessor">        }</span>
<a name="l01093"></a>01093 <span class="preprocessor"></span>
<a name="l01094"></a>01094 <span class="comment">//#ifdef QVIPP</span>
<a name="l01095"></a>01095 CREATE_CONVERT_OPERATOR(uChar, uShort, 1);
<a name="l01096"></a>01096 CREATE_CONVERT_OPERATOR(uChar, sShort, 1);
<a name="l01097"></a>01097 CREATE_CONVERT_OPERATOR(uChar, sInt, 1);
<a name="l01098"></a>01098 CREATE_CONVERT_OPERATOR(uChar, sFloat, 1);
<a name="l01099"></a>01099 CREATE_CONVERT_OPERATOR(uChar, uShort, 3);
<a name="l01100"></a>01100 CREATE_CONVERT_OPERATOR(uChar, sShort, 3);
<a name="l01101"></a>01101 CREATE_CONVERT_OPERATOR(uChar, sInt, 3);
<a name="l01102"></a>01102 CREATE_CONVERT_OPERATOR(uChar, sFloat, 3);
<a name="l01103"></a>01103 CREATE_CONVERT_OPERATOR(uShort, uChar, 1);
<a name="l01104"></a>01104 CREATE_CONVERT_OPERATOR(uShort, sInt, 1);
<a name="l01105"></a>01105 CREATE_CONVERT_OPERATOR(uShort, sFloat, 1);
<a name="l01106"></a>01106 CREATE_CONVERT_OPERATOR(uShort, uChar, 3);
<a name="l01107"></a>01107 CREATE_CONVERT_OPERATOR(uShort, sInt, 3);
<a name="l01108"></a>01108 CREATE_CONVERT_OPERATOR(uShort, sFloat, 3);
<a name="l01109"></a>01109 CREATE_CONVERT_OPERATOR(sShort, uChar, 1);
<a name="l01110"></a>01110 CREATE_CONVERT_OPERATOR(sShort, sInt, 1);
<a name="l01111"></a>01111 CREATE_CONVERT_OPERATOR(sShort, sFloat, 1);
<a name="l01112"></a>01112 CREATE_CONVERT_OPERATOR(sShort, uChar, 3);
<a name="l01113"></a>01113 CREATE_CONVERT_OPERATOR(sShort, sInt, 3);
<a name="l01114"></a>01114 CREATE_CONVERT_OPERATOR(sShort, sFloat, 3);
<a name="l01115"></a>01115 CREATE_CONVERT_OPERATOR(sInt, uChar, 1);
<a name="l01116"></a>01116 CREATE_CONVERT_OPERATOR(sInt, uChar, 3);
<a name="l01117"></a>01117 CREATE_CONVERT_OPERATOR(sFloat, uChar, 1);
<a name="l01118"></a>01118 CREATE_CONVERT_OPERATOR(sFloat, uShort, 1);
<a name="l01119"></a>01119 CREATE_CONVERT_OPERATOR(sFloat, sShort, 1);
<a name="l01120"></a>01120 CREATE_CONVERT_OPERATOR(sFloat, uChar, 3);
<a name="l01121"></a>01121 CREATE_CONVERT_OPERATOR(sFloat, uShort, 3);
<a name="l01122"></a>01122 CREATE_CONVERT_OPERATOR(sFloat, sShort, 3);
<a name="l01123"></a>01123 <span class="comment">//#endif</span>
<a name="l01124"></a>01124 
<a name="l01125"></a>01125 <span class="comment">// Nota: las siguientes funciones dan error al compilar, ya que no existen versiones de la función wrapper Convert,</span>
<a name="l01126"></a>01126 <span class="comment">// para convertir de una imagen entera, a una imagen de tipo uShort, sShort, o sFloat.</span>
<a name="l01127"></a>01127 <span class="comment">//      CREATE_CONVERT_OPERATOR(uShort, sInt, 1);</span>
<a name="l01128"></a>01128 <span class="comment">//      CREATE_CONVERT_OPERATOR(sShort, sInt, 1);</span>
<a name="l01129"></a>01129 <span class="comment">//      CREATE_CONVERT_OPERATOR(uShort, sInt, 3);</span>
<a name="l01130"></a>01130 <span class="comment">//      CREATE_CONVERT_OPERATOR(sShort, sInt, 3);</span>
<a name="l01131"></a>01131 <span class="comment">//      CREATE_CONVERT_OPERATOR(sFloat, sInt, 3);</span>
<a name="l01132"></a>01132 <span class="comment">//      CREATE_CONVERT_OPERATOR(sFloat, sInt, 3);</span>
<a name="l01133"></a>01133 <span class="comment">//</span>
<a name="l01134"></a>01134 <span class="comment">// Por ello, estas funciones deben ser definidas con funciones de conversión Ad-hoc, así como las funciones de conversión</span>
<a name="l01135"></a>01135 <span class="comment">// de valores uShort a valores sShort, y viceversa, que tampoco están implementadas por las IPP, ni las funciones para convertir</span>
<a name="l01136"></a>01136 <span class="comment">// imagenes de distinto tipo y canal.</span>
<a name="l01137"></a>01137 <span class="comment">//</span>
<a name="l01138"></a>01138 <span class="comment">// Ojo: Para implementar las funciones de conversión entre imagenes de tipo sShort y uShort, hay que tener en cuenta la saturación</span>
<a name="l01139"></a>01139 <span class="comment">// (que hacen las IPP para todas las funciones de conversión que implementa):</span>
<a name="l01140"></a>01140 <span class="comment">// - Si se quiere convertir un valor sShort menor que cero a un valor uShort, se deja como el valor cero (0).</span>
<a name="l01141"></a>01141 <span class="comment">// - Si se quiere convertir un valor uShort mayor que IPP_MAX_16S a sShort, se debe dejar como el valor IPP_MAX_16S.</span>
<a name="l01142"></a>01142 
<a name="l01143"></a>01143 <span class="comment">/*</span>
<a name="l01144"></a>01144 <span class="comment">#define CREATE_CONVERT_OPERATOR_NO_IPP_1(TYPE1, TYPE2)                                                  \</span>
<a name="l01145"></a>01145 <span class="comment">template &lt;&gt; QVImage&lt;TYPE2, 1&gt; &amp; QVImage&lt;TYPE2, 1&gt;::operator=(const QVImage&lt;TYPE1, 1&gt; &amp;img)              \</span>
<a name="l01146"></a>01146 <span class="comment">        {                                                                                               \</span>
<a name="l01147"></a>01147 <span class="comment">        imageBuffer = new QVImageBuffer&lt;TYPE2&gt;(img.getCols(), img.getRows());                   \</span>
<a name="l01148"></a>01148 <span class="comment">        QVIMAGE_PTR_INIT_WRITE(TYPE2, this);                                                            \</span>
<a name="l01149"></a>01149 <span class="comment">        QVIMAGE_INIT_READ(TYPE1, img);                                                                  \</span>
<a name="l01150"></a>01150 <span class="comment">        for (int col = img.getROI().left(); col &lt; img.getROI().right(); col++)                          \</span>
<a name="l01151"></a>01151 <span class="comment">                for (int row = img.getROI().top(); row &lt; img.getROI().bottom(); row++)                  \</span>
<a name="l01152"></a>01152 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 0) = (TYPE2)QVIMAGE_PIXEL(img, col, row, 0);      \</span>
<a name="l01153"></a>01153 <span class="comment">        setROI(img.getROI()); setAnchor(img.getAnchor());                                               \</span>
<a name="l01154"></a>01154 <span class="comment">        step_div_type_size = getStep()/sizeof(TYPE2);                                                   \</span>
<a name="l01155"></a>01155 <span class="comment">        return *this;                                                                                   \</span>
<a name="l01156"></a>01156 <span class="comment">        }</span>
<a name="l01157"></a>01157 <span class="comment"></span>
<a name="l01158"></a>01158 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_1(uShort, sShort);</span>
<a name="l01159"></a>01159 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_1(sShort, uShort);</span>
<a name="l01160"></a>01160 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_1(sInt, uShort);</span>
<a name="l01161"></a>01161 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_1(sInt, sShort);</span>
<a name="l01162"></a>01162 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_1(sInt, sFloat);</span>
<a name="l01163"></a>01163 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_1(sFloat, sInt);</span>
<a name="l01164"></a>01164 <span class="comment"></span>
<a name="l01165"></a>01165 <span class="comment">#define CREATE_CONVERT_OPERATOR_NO_IPP_3(TYPE1, TYPE2)                                                  \</span>
<a name="l01166"></a>01166 <span class="comment">template &lt;&gt; QVImage&lt;TYPE2, 3&gt; &amp; QVImage&lt;TYPE2, 3&gt;::operator=(const QVImage&lt;TYPE1, 3&gt; &amp;img)              \</span>
<a name="l01167"></a>01167 <span class="comment">        {                                                                                               \</span>
<a name="l01168"></a>01168 <span class="comment">        imageBuffer = new QVImageBuffer&lt;TYPE2&gt;(3*img.getCols(), img.getRows());                 \</span>
<a name="l01169"></a>01169 <span class="comment">        QVIMAGE_PTR_INIT_WRITE(TYPE2, this);                                                            \</span>
<a name="l01170"></a>01170 <span class="comment">        QVIMAGE_INIT_READ(TYPE1, img);                                                                  \</span>
<a name="l01171"></a>01171 <span class="comment">        for (int col = img.getROI().left(); col &lt; img.getROI().right(); col++)                          \</span>
<a name="l01172"></a>01172 <span class="comment">                for (int row = img.getROI().top(); row &lt; img.getROI().bottom(); row++)                  \</span>
<a name="l01173"></a>01173 <span class="comment">                        {                                                                               \</span>
<a name="l01174"></a>01174 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 0) = (TYPE2)QVIMAGE_PIXEL(img, col, row, 0);              \</span>
<a name="l01175"></a>01175 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 1) = (TYPE2)QVIMAGE_PIXEL(img, col, row, 1);              \</span>
<a name="l01176"></a>01176 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 2) = (TYPE2)QVIMAGE_PIXEL(img, col, row, 2);              \</span>
<a name="l01177"></a>01177 <span class="comment">                        }                                                                               \</span>
<a name="l01178"></a>01178 <span class="comment">        setROI(img.getROI()); setAnchor(img.getAnchor());                                               \</span>
<a name="l01179"></a>01179 <span class="comment">        step_div_type_size = getStep()/sizeof(TYPE2);                                                   \</span>
<a name="l01180"></a>01180 <span class="comment">        return *this;                                                                                   \</span>
<a name="l01181"></a>01181 <span class="comment">        }</span>
<a name="l01182"></a>01182 <span class="comment"></span>
<a name="l01183"></a>01183 <span class="comment"></span>
<a name="l01184"></a>01184 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_3(uShort, sShort);</span>
<a name="l01185"></a>01185 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_3(sShort, uShort);</span>
<a name="l01186"></a>01186 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_3(sInt, uShort);</span>
<a name="l01187"></a>01187 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_3(sInt, sShort);</span>
<a name="l01188"></a>01188 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_3(sInt, sFloat);</span>
<a name="l01189"></a>01189 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_3(sFloat, sInt);</span>
<a name="l01190"></a>01190 <span class="comment">*/</span>
<a name="l01191"></a>01191 
<a name="l01192"></a>01192 <span class="preprocessor">#define CREATE_CONVERT_OPERATOR_C3_C1(TYPE)                                                                                                     \</span>
<a name="l01193"></a>01193 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, 1&gt; &amp; QVImage&lt;TYPE, 1&gt;::operator=(const QVImage&lt;TYPE, 3&gt; &amp;img)         \</span>
<a name="l01194"></a>01194 <span class="preprocessor">        {                                                                                                                                                                               \</span>
<a name="l01195"></a>01195 <span class="preprocessor">        imageBuffer = new QVImageBuffer&lt;TYPE&gt;(img.getCols(), img.getRows());                                    \</span>
<a name="l01196"></a>01196 <span class="preprocessor">        setAnchor(img.getROI().x(),img.getROI().y());                                                                                   \</span>
<a name="l01197"></a>01197 <span class="preprocessor">        RGBToGray(img, *this);                                                                                                                                  \</span>
<a name="l01198"></a>01198 <span class="preprocessor">        setROI(img.getROI()); setAnchor(img.getAnchor());                                                                               \</span>
<a name="l01199"></a>01199 <span class="preprocessor">        step_div_type_size = getStep()/sizeof(TYPE);                                                                                    \</span>
<a name="l01200"></a>01200 <span class="preprocessor">        return *this;                                                                                                                                                   \</span>
<a name="l01201"></a>01201 <span class="preprocessor">        }</span>
<a name="l01202"></a>01202 <span class="preprocessor"></span>
<a name="l01203"></a>01203 <span class="comment">//#ifdef QVIPP</span>
<a name="l01204"></a>01204 CREATE_CONVERT_OPERATOR_C3_C1(uChar);
<a name="l01205"></a>01205 CREATE_CONVERT_OPERATOR_C3_C1(sChar);
<a name="l01206"></a>01206 CREATE_CONVERT_OPERATOR_C3_C1(uInt);
<a name="l01207"></a>01207 CREATE_CONVERT_OPERATOR_C3_C1(sInt);
<a name="l01208"></a>01208 CREATE_CONVERT_OPERATOR_C3_C1(uShort);
<a name="l01209"></a>01209 CREATE_CONVERT_OPERATOR_C3_C1(sShort);
<a name="l01210"></a>01210 CREATE_CONVERT_OPERATOR_C3_C1(sFloat);
<a name="l01211"></a>01211 <span class="comment">//#endif</span>
<a name="l01212"></a>01212 
<a name="l01213"></a>01213 <span class="comment">/*#define       CREATE_CONVERT_OPERATOR_NO_IPP_C3_C1(TYPE)                                                      \</span>
<a name="l01214"></a>01214 <span class="comment">template &lt;&gt; QVImage&lt;TYPE, 1&gt; &amp; QVImage&lt;TYPE, 1&gt;::operator=(const QVImage&lt;TYPE, 3&gt; &amp;img)                 \</span>
<a name="l01215"></a>01215 <span class="comment">        {                                                                                               \</span>
<a name="l01216"></a>01216 <span class="comment">        imageBuffer = new QVImageBuffer&lt;TYPE&gt;(img.getCols(), img.getRows());                            \</span>
<a name="l01217"></a>01217 <span class="comment">        QVIMAGE_PTR_INIT_WRITE(TYPE, this);                                                             \</span>
<a name="l01218"></a>01218 <span class="comment">        QVIMAGE_INIT_READ(TYPE, img);                                                                   \</span>
<a name="l01219"></a>01219 <span class="comment">        for (int col = img.getROI().left(); col &lt; img.getROI().right(); col++)                          \</span>
<a name="l01220"></a>01220 <span class="comment">                for (int row = img.getROI().top(); row &lt; img.getROI().bottom(); row++)                  \</span>
<a name="l01221"></a>01221 <span class="comment">                        {                                                                               \</span>
<a name="l01222"></a>01222 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 0) = (TYPE)(0.299 * QVIMAGE_PIXEL(img, col, row, 0));     \</span>
<a name="l01223"></a>01223 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 0) += (TYPE)(0.587 * QVIMAGE_PIXEL(img, col, row, 1));    \</span>
<a name="l01224"></a>01224 <span class="comment">                        QVIMAGE_PIXEL(this, col, row, 0) += (TYPE)(0.114 * QVIMAGE_PIXEL(img, col, row, 2));    \</span>
<a name="l01225"></a>01225 <span class="comment">                        }                                                                               \</span>
<a name="l01226"></a>01226 <span class="comment">        setROI(img.getROI()); setAnchor(img.getAnchor());                                               \</span>
<a name="l01227"></a>01227 <span class="comment">        step_div_type_size = getStep()/sizeof(TYPE);                                                    \</span>
<a name="l01228"></a>01228 <span class="comment">        return *this;                                                                                   \</span>
<a name="l01229"></a>01229 <span class="comment">        }</span>
<a name="l01230"></a>01230 <span class="comment"></span>
<a name="l01231"></a>01231 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_C3_C1(sInt);</span>
<a name="l01232"></a>01232 <span class="comment">#ifndef QVIPP</span>
<a name="l01233"></a>01233 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_C3_C1(uChar);</span>
<a name="l01234"></a>01234 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_C3_C1(sChar);</span>
<a name="l01235"></a>01235 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_C3_C1(uShort);</span>
<a name="l01236"></a>01236 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_C3_C1(sShort);</span>
<a name="l01237"></a>01237 <span class="comment">CREATE_CONVERT_OPERATOR_NO_IPP_C3_C1(sFloat);</span>
<a name="l01238"></a>01238 <span class="comment">#endif*/</span>
<a name="l01239"></a>01239 
<a name="l01240"></a>01240 <span class="preprocessor">#define CREATE_CONVERT_OPERATOR_C1_C3(TYPE)                                                                                                     \</span>
<a name="l01241"></a>01241 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, 3&gt; &amp; QVImage&lt;TYPE, 3&gt;::operator=(const QVImage&lt;TYPE, 1&gt; &amp;img)         \</span>
<a name="l01242"></a>01242 <span class="preprocessor">        {                                                                                                                                                                               \</span>
<a name="l01243"></a>01243 <span class="preprocessor">        imageBuffer = new QVImageBuffer&lt;TYPE&gt;(3*img.getCols(), img.getRows());                                  \</span>
<a name="l01244"></a>01244 <span class="preprocessor">        setAnchor(img.getROI().x(),img.getROI().y());                                                                                   \</span>
<a name="l01245"></a>01245 <span class="preprocessor">        Copy(img, img, img, *this);                                                                                                                             \</span>
<a name="l01246"></a>01246 <span class="preprocessor">        setROI(img.getROI()); setAnchor(img.getAnchor());                                                                               \</span>
<a name="l01247"></a>01247 <span class="preprocessor">        step_div_type_size = getStep()/sizeof(TYPE);                                                                                    \</span>
<a name="l01248"></a>01248 <span class="preprocessor">        return *this;                                                                                                                                                   \</span>
<a name="l01249"></a>01249 <span class="preprocessor">        }</span>
<a name="l01250"></a>01250 <span class="preprocessor"></span>
<a name="l01251"></a>01251 <span class="preprocessor">#ifdef QVIPP</span>
<a name="l01252"></a>01252 <span class="preprocessor"></span>CREATE_CONVERT_OPERATOR_C1_C3(uChar);
<a name="l01253"></a>01253 CREATE_CONVERT_OPERATOR_C1_C3(uShort);
<a name="l01254"></a>01254 CREATE_CONVERT_OPERATOR_C1_C3(sShort);
<a name="l01255"></a>01255 CREATE_CONVERT_OPERATOR_C1_C3(sInt);
<a name="l01256"></a>01256 CREATE_CONVERT_OPERATOR_C1_C3(sFloat);
<a name="l01257"></a>01257 <span class="preprocessor">#endif</span>
<a name="l01258"></a>01258 <span class="preprocessor"></span>
<a name="l01259"></a>01259 <span class="comment">//Convert constructors with double conversion (after operator= declaration)</span>
<a name="l01260"></a>01260 <span class="preprocessor">#define CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(TYPE1, TYPE2)                                                           \</span>
<a name="l01261"></a>01261 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE2, 1&gt;::QVImage(QVImage&lt;TYPE1, 3&gt; const &amp;img):QVGenericImage(img)        \</span>
<a name="l01262"></a>01262 <span class="preprocessor">        {                                                                                                                                                                               \</span>
<a name="l01263"></a>01263 <span class="preprocessor">        QVImage&lt;TYPE1, 1&gt; temp1(img);                                                                                                                   \</span>
<a name="l01264"></a>01264 <span class="preprocessor">        QVImage&lt;TYPE2, 1&gt; temp2(temp1);                                                                                                                 \</span>
<a name="l01265"></a>01265 <span class="preprocessor">        *this = temp2;                                                                                                                                                  \</span>
<a name="l01266"></a>01266 <span class="preprocessor">        }</span>
<a name="l01267"></a>01267 <span class="preprocessor"></span>
<a name="l01268"></a>01268 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(uChar, uShort);
<a name="l01269"></a>01269 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(uChar, sShort);
<a name="l01270"></a>01270 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(uChar, sInt);
<a name="l01271"></a>01271 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(uChar, sFloat);
<a name="l01272"></a>01272 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(uShort, uChar);
<a name="l01273"></a>01273 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(uShort, sShort);
<a name="l01274"></a>01274 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(uShort, sInt);
<a name="l01275"></a>01275 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(uShort, sFloat);
<a name="l01276"></a>01276 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(sShort, uChar);
<a name="l01277"></a>01277 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(sShort, uShort);
<a name="l01278"></a>01278 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(sShort, sInt);
<a name="l01279"></a>01279 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(sShort, sFloat);
<a name="l01280"></a>01280 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(sInt, uChar);
<a name="l01281"></a>01281 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(sInt, uShort);
<a name="l01282"></a>01282 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(sInt, sShort);
<a name="l01283"></a>01283 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(sInt, sFloat);
<a name="l01284"></a>01284 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(sFloat, uChar);
<a name="l01285"></a>01285 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(sFloat, uShort);
<a name="l01286"></a>01286 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(sFloat, sShort);
<a name="l01287"></a>01287 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C3_C1(sFloat, sInt);
<a name="l01288"></a>01288 
<a name="l01289"></a>01289 <span class="preprocessor">#define CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(TYPE1, TYPE2)                                                           \</span>
<a name="l01290"></a>01290 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE2, 3&gt;::QVImage(QVImage&lt;TYPE1, 1&gt; const &amp;img):QVGenericImage(img)        \</span>
<a name="l01291"></a>01291 <span class="preprocessor">        {                                                                                                                                                                               \</span>
<a name="l01292"></a>01292 <span class="preprocessor">        QVImage&lt;TYPE1, 3&gt; temp1(img);                                                                                                                   \</span>
<a name="l01293"></a>01293 <span class="preprocessor">        QVImage&lt;TYPE2, 3&gt; temp2(temp1);                                                                                                                 \</span>
<a name="l01294"></a>01294 <span class="preprocessor">        *this = temp2;                                                                                                                                                  \</span>
<a name="l01295"></a>01295 <span class="preprocessor">        }</span>
<a name="l01296"></a>01296 <span class="preprocessor"></span>
<a name="l01297"></a>01297 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(uChar, uShort);
<a name="l01298"></a>01298 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(uChar, sShort);
<a name="l01299"></a>01299 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(uChar, sInt);
<a name="l01300"></a>01300 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(uChar, sFloat);
<a name="l01301"></a>01301 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(uShort, uChar);
<a name="l01302"></a>01302 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(uShort, sShort);
<a name="l01303"></a>01303 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(uShort, sInt);
<a name="l01304"></a>01304 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(uShort, sFloat);
<a name="l01305"></a>01305 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(sShort, uChar);
<a name="l01306"></a>01306 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(sShort, uShort);
<a name="l01307"></a>01307 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(sShort, sInt);
<a name="l01308"></a>01308 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(sShort, sFloat);
<a name="l01309"></a>01309 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(sInt, uChar);
<a name="l01310"></a>01310 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(sInt, uShort);
<a name="l01311"></a>01311 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(sInt, sShort);
<a name="l01312"></a>01312 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(sInt, sFloat);
<a name="l01313"></a>01313 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(sFloat, uChar);
<a name="l01314"></a>01314 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(sFloat, uShort);
<a name="l01315"></a>01315 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(sFloat, sShort);
<a name="l01316"></a>01316 CREATE_CONVERT_CONSTRUCTOR_DOUBLE_C1_C3(sFloat, sInt);
<a name="l01317"></a>01317 
<a name="l01318"></a>01318 
<a name="l01319"></a>01319 <span class="preprocessor">#define CREATE_ACCESS_CONSTRUCTOR(OPERATOR, TYPE, C)                                                                    \</span>
<a name="l01320"></a>01320 <span class="preprocessor">template &lt;&gt; QVImage&lt;TYPE, 1&gt; QVImage&lt;TYPE, C&gt;::OPERATOR(const uInt channel) const               \</span>
<a name="l01321"></a>01321 <span class="preprocessor">        {                                                                                                                                                                       \</span>
<a name="l01322"></a>01322 <span class="preprocessor">        QVImage&lt;TYPE, 1&gt; result(getCols(), getRows());                                                                          \</span>
<a name="l01323"></a>01323 <span class="preprocessor">        Copy(*this, channel, result);                                                                                                           \</span>
<a name="l01324"></a>01324 <span class="preprocessor">        result.setROI(getROI()); result.setAnchor(getAnchor());                                                         \</span>
<a name="l01325"></a>01325 <span class="preprocessor">        return result;                                                                                                                                          \</span>
<a name="l01326"></a>01326 <span class="preprocessor">        }</span>
<a name="l01327"></a>01327 <span class="preprocessor"></span>
<a name="l01328"></a>01328 CREATE_ACCESS_CONSTRUCTOR(<span class="keyword">operator</span>(), uChar, 1);
<a name="l01329"></a>01329 CREATE_ACCESS_CONSTRUCTOR(<span class="keyword">operator</span>(), uChar, 3);
<a name="l01330"></a>01330 CREATE_ACCESS_CONSTRUCTOR(<span class="keyword">operator</span>(), uShort, 1);
<a name="l01331"></a>01331 CREATE_ACCESS_CONSTRUCTOR(<span class="keyword">operator</span>(), uShort, 3);
<a name="l01332"></a>01332 CREATE_ACCESS_CONSTRUCTOR(<span class="keyword">operator</span>(), sShort, 1);
<a name="l01333"></a>01333 CREATE_ACCESS_CONSTRUCTOR(<span class="keyword">operator</span>(), sShort, 3);
<a name="l01334"></a>01334 CREATE_ACCESS_CONSTRUCTOR(<span class="keyword">operator</span>(), sInt, 1);
<a name="l01335"></a>01335 CREATE_ACCESS_CONSTRUCTOR(<span class="keyword">operator</span>(), sInt, 3);
<a name="l01336"></a>01336 CREATE_ACCESS_CONSTRUCTOR(<span class="keyword">operator</span>(), sFloat, 1);
<a name="l01337"></a>01337 CREATE_ACCESS_CONSTRUCTOR(<span class="keyword">operator</span>(), sFloat, 3);
<a name="l01338"></a>01338 
<a name="l01339"></a>01339 <span class="comment">// == Substitute functions for IPP wrapper functions ==</span>
<a name="l01340"></a>01340 
<a name="l01341"></a>01341 
<a name="l01342"></a>01342 <span class="preprocessor">#ifndef DOXYGEN_IGNORE_THIS</span>
<a name="l01343"></a>01343 <span class="preprocessor"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Type&gt; <span class="keywordtype">void</span> CopyC1x3C3(        <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type, 1&gt;</a> &amp;src1,
<a name="l01344"></a>01344                                                                                         <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type, 1&gt;</a> &amp;src2,
<a name="l01345"></a>01345                                                                                         <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type, 1&gt;</a> &amp;src3,
<a name="l01346"></a>01346                                                                                         <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type, 3&gt;</a> &amp;dst)
<a name="l01347"></a>01347         {
<a name="l01348"></a>01348         <span class="keyword">const</span> uInt cols = src1.<a class="code" href="classQVImage.html#ad0f2758702ee4d96d538aa353ae81bb7" title="Overloaded function from QVGenericImage::getCols().">getCols</a>(), rows = src1.<a class="code" href="classQVImage.html#a55e71ad628f450ee82bb4226cb62ec17" title="Overloaded function from QVGenericImage::getRows().">getRows</a>();
<a name="l01349"></a>01349 
<a name="l01350"></a>01350         Q_ASSERT_X(src2.<a class="code" href="classQVImage.html#ad0f2758702ee4d96d538aa353ae81bb7" title="Overloaded function from QVGenericImage::getCols().">getCols</a>() == cols, <span class="stringliteral">&quot;CopyC1x3C3&quot;</span>, <span class="stringliteral">&quot;Number of columns for images 1 and 2 do not match&quot;</span>);
<a name="l01351"></a>01351         Q_ASSERT_X(src2.<a class="code" href="classQVImage.html#a55e71ad628f450ee82bb4226cb62ec17" title="Overloaded function from QVGenericImage::getRows().">getRows</a>() == rows, <span class="stringliteral">&quot;CopyC1x3C3&quot;</span>, <span class="stringliteral">&quot;Number of rows for images 1 and 2 do not match&quot;</span>);
<a name="l01352"></a>01352         Q_ASSERT_X(src3.<a class="code" href="classQVImage.html#ad0f2758702ee4d96d538aa353ae81bb7" title="Overloaded function from QVGenericImage::getCols().">getCols</a>() == cols, <span class="stringliteral">&quot;CopyC1x3C3&quot;</span>, <span class="stringliteral">&quot;Number of columns for images 1 and 3 do not match&quot;</span>);
<a name="l01353"></a>01353         Q_ASSERT_X(src3.<a class="code" href="classQVImage.html#a55e71ad628f450ee82bb4226cb62ec17" title="Overloaded function from QVGenericImage::getRows().">getRows</a>() == rows, <span class="stringliteral">&quot;CopyC1x3C3&quot;</span>, <span class="stringliteral">&quot;Number of rows for images 1 and 3 do not match&quot;</span>);
<a name="l01354"></a>01354 
<a name="l01355"></a>01355         dst = <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type, 3&gt;</a>(cols, rows);
<a name="l01356"></a>01356         dst.<a class="code" href="classQVGenericImage.html#a2e01c2584cee10559bf1aac1ca7e287b" title="Set the region of interest of the image.">setROI</a>(src1.<a class="code" href="classQVGenericImage.html#a55132f8ba36904516dcf384039c670e4" title="Method for obtaining actual region of interest for image.">getROI</a>());
<a name="l01357"></a>01357 
<a name="l01358"></a>01358         Type <span class="keyword">const</span>      *src1Data = src1.<a class="code" href="classQVImage.html#a200b9b19dbe2a79f75d603f9ecc67bf1" title="Method to obtain image data buffer, in read mode.">getReadData</a>(),
<a name="l01359"></a>01359                                 *src2Data = src2.<a class="code" href="classQVImage.html#a200b9b19dbe2a79f75d603f9ecc67bf1" title="Method to obtain image data buffer, in read mode.">getReadData</a>(),
<a name="l01360"></a>01360                                 *src3Data = src3.<a class="code" href="classQVImage.html#a200b9b19dbe2a79f75d603f9ecc67bf1" title="Method to obtain image data buffer, in read mode.">getReadData</a>();
<a name="l01361"></a>01361 
<a name="l01362"></a>01362         Type *dstData = dst.getWriteData();
<a name="l01363"></a>01363         <span class="keyword">const</span> uInt      src1Step = src1.<a class="code" href="classQVImage.html#a8c5cb45d0c7fbf135d89c5cb40ed4875" title="Overloaded function from QVGenericImage::getStep().">getStep</a>(),
<a name="l01364"></a>01364                                 src2Step = src2.<a class="code" href="classQVImage.html#a8c5cb45d0c7fbf135d89c5cb40ed4875" title="Overloaded function from QVGenericImage::getStep().">getStep</a>(),
<a name="l01365"></a>01365                                 src3Step = src3.<a class="code" href="classQVImage.html#a8c5cb45d0c7fbf135d89c5cb40ed4875" title="Overloaded function from QVGenericImage::getStep().">getStep</a>(),
<a name="l01366"></a>01366                                 dstStep = dst.getStep();
<a name="l01367"></a>01367 
<a name="l01368"></a>01368         <span class="keywordflow">for</span>(uInt i = 0; i &lt; rows; i++)
<a name="l01369"></a>01369                 {
<a name="l01370"></a>01370                 <span class="keywordflow">for</span>(uInt j = 0; j &lt; cols; j++)
<a name="l01371"></a>01371                         {
<a name="l01372"></a>01372                         dstData[3*j+0] = src1Data[j];
<a name="l01373"></a>01373                         dstData[3*j+1] = src2Data[j];
<a name="l01374"></a>01374                         dstData[3*j+2] = src3Data[j];
<a name="l01375"></a>01375                         }
<a name="l01376"></a>01376 
<a name="l01377"></a>01377                 src1Data += src1Step;
<a name="l01378"></a>01378                 src2Data += src2Step;
<a name="l01379"></a>01379                 src3Data += src3Step;
<a name="l01380"></a>01380                 dstData += dstStep;
<a name="l01381"></a>01381                 }
<a name="l01382"></a>01382         }
<a name="l01383"></a>01383 
<a name="l01384"></a>01384 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Type&gt; <span class="keywordtype">void</span> ConvertC1C3(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type, 3&gt;</a> &amp;dst)
<a name="l01385"></a>01385         {
<a name="l01386"></a>01386         <span class="keyword">const</span> <span class="keywordtype">int</span> cols = src.<a class="code" href="classQVImage.html#ad0f2758702ee4d96d538aa353ae81bb7" title="Overloaded function from QVGenericImage::getCols().">getCols</a>(), rows = src.<a class="code" href="classQVImage.html#a55e71ad628f450ee82bb4226cb62ec17" title="Overloaded function from QVGenericImage::getRows().">getRows</a>();
<a name="l01387"></a>01387 
<a name="l01388"></a>01388         dst = <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type, 3&gt;</a>(cols, rows);
<a name="l01389"></a>01389         dst.<a class="code" href="classQVGenericImage.html#a2e01c2584cee10559bf1aac1ca7e287b" title="Set the region of interest of the image.">setROI</a>(src.<a class="code" href="classQVGenericImage.html#a55132f8ba36904516dcf384039c670e4" title="Method for obtaining actual region of interest for image.">getROI</a>());
<a name="l01390"></a>01390 
<a name="l01391"></a>01391         Type <span class="keyword">const</span> *srcData = src.<a class="code" href="classQVImage.html#a200b9b19dbe2a79f75d603f9ecc67bf1" title="Method to obtain image data buffer, in read mode.">getReadData</a>();
<a name="l01392"></a>01392         Type *dstData = dst.<a class="code" href="classQVImage.html#a231507d781e33e508fac771b5284c3c9" title="Method to obtain image data buffer, in read/write mode.">getWriteData</a>();
<a name="l01393"></a>01393         <span class="keyword">const</span> <span class="keywordtype">int</span>       srcStep = src.<a class="code" href="classQVImage.html#a8c5cb45d0c7fbf135d89c5cb40ed4875" title="Overloaded function from QVGenericImage::getStep().">getStep</a>(),
<a name="l01394"></a>01394                                 dstStep = dst.<a class="code" href="classQVImage.html#a8c5cb45d0c7fbf135d89c5cb40ed4875" title="Overloaded function from QVGenericImage::getStep().">getStep</a>();
<a name="l01395"></a>01395 
<a name="l01396"></a>01396         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; rows; i++)
<a name="l01397"></a>01397                 {
<a name="l01398"></a>01398                 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; cols; j++)
<a name="l01399"></a>01399                         dstData[3*j+0] = dstData[3*j+1] = dstData[3*j+2] = srcData[j];
<a name="l01400"></a>01400                 srcData += srcStep;
<a name="l01401"></a>01401                 dstData += dstStep;
<a name="l01402"></a>01402                 }
<a name="l01403"></a>01403         }
<a name="l01404"></a>01404 
<a name="l01405"></a>01405 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Type&gt; <span class="keywordtype">void</span> ConvertC3C1(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type, 1&gt;</a> &amp;dst)
<a name="l01406"></a>01406         {
<a name="l01407"></a>01407         <span class="keyword">const</span> <span class="keywordtype">int</span> cols = src.<a class="code" href="classQVImage.html#ad0f2758702ee4d96d538aa353ae81bb7" title="Overloaded function from QVGenericImage::getCols().">getCols</a>(), rows = src.<a class="code" href="classQVImage.html#a55e71ad628f450ee82bb4226cb62ec17" title="Overloaded function from QVGenericImage::getRows().">getRows</a>();
<a name="l01408"></a>01408 
<a name="l01409"></a>01409         dst = <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type, 1&gt;</a>(cols, rows);
<a name="l01410"></a>01410         dst.<a class="code" href="classQVGenericImage.html#a2e01c2584cee10559bf1aac1ca7e287b" title="Set the region of interest of the image.">setROI</a>(src.<a class="code" href="classQVGenericImage.html#a55132f8ba36904516dcf384039c670e4" title="Method for obtaining actual region of interest for image.">getROI</a>());
<a name="l01411"></a>01411 
<a name="l01412"></a>01412         Type <span class="keyword">const</span> *srcData = src.<a class="code" href="classQVImage.html#a200b9b19dbe2a79f75d603f9ecc67bf1" title="Method to obtain image data buffer, in read mode.">getReadData</a>();
<a name="l01413"></a>01413         Type *dstData = dst.<a class="code" href="classQVImage.html#a231507d781e33e508fac771b5284c3c9" title="Method to obtain image data buffer, in read/write mode.">getWriteData</a>();
<a name="l01414"></a>01414         <span class="keyword">const</span> <span class="keywordtype">int</span>       srcStep = src.<a class="code" href="classQVImage.html#a8c5cb45d0c7fbf135d89c5cb40ed4875" title="Overloaded function from QVGenericImage::getStep().">getStep</a>(),
<a name="l01415"></a>01415                                 dstStep = dst.<a class="code" href="classQVImage.html#a8c5cb45d0c7fbf135d89c5cb40ed4875" title="Overloaded function from QVGenericImage::getStep().">getStep</a>();
<a name="l01416"></a>01416 
<a name="l01417"></a>01417         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; rows; i++)
<a name="l01418"></a>01418                 {
<a name="l01419"></a>01419                 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; cols; j++)
<a name="l01420"></a>01420                         dstData[j] = (srcData[3*j+0] + srcData[3*j+1] + srcData[3*j+2])/3;
<a name="l01421"></a>01421                 srcData += srcStep;
<a name="l01422"></a>01422                 dstData += dstStep;
<a name="l01423"></a>01423                 }
<a name="l01424"></a>01424         }
<a name="l01425"></a>01425 
<a name="l01426"></a>01426 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Type1, <span class="keyword">typename</span> Type2, <span class="keywordtype">int</span> C&gt; <span class="keywordtype">void</span> ConvertType(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type1, C&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type2, C&gt;</a> &amp;dst)
<a name="l01427"></a>01427         {
<a name="l01428"></a>01428         <span class="keyword">const</span> <span class="keywordtype">int</span> cols = src.<a class="code" href="classQVImage.html#ad0f2758702ee4d96d538aa353ae81bb7" title="Overloaded function from QVGenericImage::getCols().">getCols</a>(), rows = src.<a class="code" href="classQVImage.html#a55e71ad628f450ee82bb4226cb62ec17" title="Overloaded function from QVGenericImage::getRows().">getRows</a>();
<a name="l01429"></a>01429 
<a name="l01430"></a>01430         dst = <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type2, C&gt;</a>(cols, rows);
<a name="l01431"></a>01431         dst.<a class="code" href="classQVGenericImage.html#a2e01c2584cee10559bf1aac1ca7e287b" title="Set the region of interest of the image.">setROI</a>(src.<a class="code" href="classQVGenericImage.html#a55132f8ba36904516dcf384039c670e4" title="Method for obtaining actual region of interest for image.">getROI</a>());
<a name="l01432"></a>01432 
<a name="l01433"></a>01433         Type1 <span class="keyword">const</span> *srcData = src.<a class="code" href="classQVImage.html#a200b9b19dbe2a79f75d603f9ecc67bf1" title="Method to obtain image data buffer, in read mode.">getReadData</a>();
<a name="l01434"></a>01434         Type2 *dstData = dst.<a class="code" href="classQVImage.html#a231507d781e33e508fac771b5284c3c9" title="Method to obtain image data buffer, in read/write mode.">getWriteData</a>();
<a name="l01435"></a>01435         <span class="keyword">const</span> <span class="keywordtype">int</span>       srcStep = src.<a class="code" href="classQVImage.html#a8c5cb45d0c7fbf135d89c5cb40ed4875" title="Overloaded function from QVGenericImage::getStep().">getStep</a>(),
<a name="l01436"></a>01436                                 dstStep = dst.<a class="code" href="classQVImage.html#a8c5cb45d0c7fbf135d89c5cb40ed4875" title="Overloaded function from QVGenericImage::getStep().">getStep</a>();
<a name="l01437"></a>01437 
<a name="l01438"></a>01438         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; rows; i++)
<a name="l01439"></a>01439                 {
<a name="l01440"></a>01440                 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; C*cols; j++)
<a name="l01441"></a>01441                         dstData[j] = srcData[j];
<a name="l01442"></a>01442                 srcData += srcStep;
<a name="l01443"></a>01443                 dstData += dstStep;
<a name="l01444"></a>01444                 }
<a name="l01445"></a>01445         }
<a name="l01446"></a>01446 
<a name="l01447"></a>01447 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Type&gt; <span class="keywordtype">void</span> CopyC3C1(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type, 3&gt;</a> &amp;src, <span class="keyword">const</span> uChar channel, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type, 1&gt;</a> &amp;dst)
<a name="l01448"></a>01448         {
<a name="l01449"></a>01449         <span class="keyword">const</span> <span class="keywordtype">int</span> cols = src.<a class="code" href="classQVImage.html#ad0f2758702ee4d96d538aa353ae81bb7" title="Overloaded function from QVGenericImage::getCols().">getCols</a>(), rows = src.<a class="code" href="classQVImage.html#a55e71ad628f450ee82bb4226cb62ec17" title="Overloaded function from QVGenericImage::getRows().">getRows</a>();
<a name="l01450"></a>01450 
<a name="l01451"></a>01451         dst = <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;Type, 1&gt;</a>(cols, rows);
<a name="l01452"></a>01452         dst.<a class="code" href="classQVGenericImage.html#a2e01c2584cee10559bf1aac1ca7e287b" title="Set the region of interest of the image.">setROI</a>(src.<a class="code" href="classQVGenericImage.html#a55132f8ba36904516dcf384039c670e4" title="Method for obtaining actual region of interest for image.">getROI</a>());
<a name="l01453"></a>01453 
<a name="l01454"></a>01454         Type <span class="keyword">const</span> *srcData = src.<a class="code" href="classQVImage.html#a200b9b19dbe2a79f75d603f9ecc67bf1" title="Method to obtain image data buffer, in read mode.">getReadData</a>();
<a name="l01455"></a>01455         Type *dstData = dst.<a class="code" href="classQVImage.html#a231507d781e33e508fac771b5284c3c9" title="Method to obtain image data buffer, in read/write mode.">getWriteData</a>();
<a name="l01456"></a>01456         <span class="keyword">const</span> <span class="keywordtype">int</span>       srcStep = src.<a class="code" href="classQVImage.html#a8c5cb45d0c7fbf135d89c5cb40ed4875" title="Overloaded function from QVGenericImage::getStep().">getStep</a>(),
<a name="l01457"></a>01457                                 dstStep = dst.<a class="code" href="classQVImage.html#a8c5cb45d0c7fbf135d89c5cb40ed4875" title="Overloaded function from QVGenericImage::getStep().">getStep</a>();
<a name="l01458"></a>01458 
<a name="l01459"></a>01459         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; rows; i++)
<a name="l01460"></a>01460                 {
<a name="l01461"></a>01461                 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; cols; j++)
<a name="l01462"></a>01462                         dstData[j] = srcData[3*j+channel];
<a name="l01463"></a>01463                 srcData += srcStep;
<a name="l01464"></a>01464                 dstData += dstStep;
<a name="l01465"></a>01465                 }
<a name="l01466"></a>01466         }
<a name="l01467"></a>01467 
<a name="l01468"></a>01468 <span class="preprocessor">#endif // DOXYGEN_IGNORE_THIS</span>
<a name="l01469"></a>01469 <span class="preprocessor"></span>
<a name="l01470"></a>01470 <span class="preprocessor">#ifndef QVIPP</span>
<a name="l01471"></a>01471 <span class="preprocessor"></span><span class="preprocessor">#define CREATE_SET_NO_IPP_C1(TYPE)                                                              \</span>
<a name="l01472"></a>01472 <span class="preprocessor">void Set(const TYPE value, QVImage&lt;TYPE, 1&gt; &amp;image)                             \</span>
<a name="l01473"></a>01473 <span class="preprocessor">        {                                                                                                                       \</span>
<a name="l01474"></a>01474 <span class="preprocessor">        const int cols = image.getCols(), rows = image.getRows();       \</span>
<a name="l01475"></a>01475 <span class="preprocessor">                                                                                                                                \</span>
<a name="l01476"></a>01476 <span class="preprocessor">        QVIMAGE_INIT_WRITE(TYPE,image);                                                         \</span>
<a name="l01477"></a>01477 <span class="preprocessor">        for(int row = 0; row &lt; rows; row++)                                                     \</span>
<a name="l01478"></a>01478 <span class="preprocessor">                for(int col = 0; col &lt; cols; col++)                                             \</span>
<a name="l01479"></a>01479 <span class="preprocessor">                        QVIMAGE_PIXEL(image, col, row, 0) = value;                      \</span>
<a name="l01480"></a>01480 <span class="preprocessor">        }</span>
<a name="l01481"></a>01481 <span class="preprocessor"></span>
<a name="l01482"></a>01482 CREATE_SET_NO_IPP_C1(uChar);
<a name="l01483"></a>01483 CREATE_SET_NO_IPP_C1(sFloat);
<a name="l01484"></a>01484 CREATE_SET_NO_IPP_C1(sInt);
<a name="l01485"></a>01485 CREATE_SET_NO_IPP_C1(uInt);
<a name="l01486"></a>01486 CREATE_SET_NO_IPP_C1(sShort);
<a name="l01487"></a>01487 CREATE_SET_NO_IPP_C1(uShort);
<a name="l01488"></a>01488 
<a name="l01489"></a>01489 <span class="preprocessor">#define CREATE_SET_NO_IPP_C3(TYPE)                                                              \</span>
<a name="l01490"></a>01490 <span class="preprocessor">void Set(const TYPE value[3], QVImage&lt;TYPE, 3&gt; &amp;image)                  \</span>
<a name="l01491"></a>01491 <span class="preprocessor">        {                                                                                                                       \</span>
<a name="l01492"></a>01492 <span class="preprocessor">        const int cols = image.getCols(), rows = image.getRows();       \</span>
<a name="l01493"></a>01493 <span class="preprocessor">                                                                                                                                \</span>
<a name="l01494"></a>01494 <span class="preprocessor">        QVIMAGE_INIT_WRITE(TYPE, image);                                                        \</span>
<a name="l01495"></a>01495 <span class="preprocessor">        for(int row = 0; row &lt; rows; row++)                                                     \</span>
<a name="l01496"></a>01496 <span class="preprocessor">                for(int col = 0; col &lt; cols; col++)                                             \</span>
<a name="l01497"></a>01497 <span class="preprocessor">                        {                                                                                                       \</span>
<a name="l01498"></a>01498 <span class="preprocessor">                        QVIMAGE_PIXEL(image, col, row, 0) = value[0];           \</span>
<a name="l01499"></a>01499 <span class="preprocessor">                        QVIMAGE_PIXEL(image, col, row, 1) = value[1];           \</span>
<a name="l01500"></a>01500 <span class="preprocessor">                        QVIMAGE_PIXEL(image, col, row, 2) = value[2];           \</span>
<a name="l01501"></a>01501 <span class="preprocessor">                        }                                                                                                       \</span>
<a name="l01502"></a>01502 <span class="preprocessor">        }</span>
<a name="l01503"></a>01503 <span class="preprocessor"></span>
<a name="l01504"></a>01504 CREATE_SET_NO_IPP_C3(uChar);
<a name="l01505"></a>01505 CREATE_SET_NO_IPP_C3(sFloat);
<a name="l01506"></a>01506 CREATE_SET_NO_IPP_C3(sInt);
<a name="l01507"></a>01507 CREATE_SET_NO_IPP_C3(uInt);
<a name="l01508"></a>01508 CREATE_SET_NO_IPP_C3(sShort);
<a name="l01509"></a>01509 CREATE_SET_NO_IPP_C3(uShort);
<a name="l01510"></a>01510 
<a name="l01511"></a>01511 <span class="preprocessor">#define CREATE_COPY_NO_IPP(TYPE, C)                                                             \</span>
<a name="l01512"></a>01512 <span class="preprocessor">void Copy(const QVImage&lt;TYPE, C&gt; &amp;src, QVImage&lt;TYPE, C&gt; &amp;dest)  \</span>
<a name="l01513"></a>01513 <span class="preprocessor">        {                                                                                                                       \</span>
<a name="l01514"></a>01514 <span class="preprocessor">        dest = src;                                                                                                     \</span>
<a name="l01515"></a>01515 <span class="preprocessor">        }</span>
<a name="l01516"></a>01516 <span class="preprocessor"></span>
<a name="l01517"></a>01517 CREATE_COPY_NO_IPP(uChar, 1);
<a name="l01518"></a>01518 CREATE_COPY_NO_IPP(sFloat, 1);
<a name="l01519"></a>01519 CREATE_COPY_NO_IPP(sInt, 1);
<a name="l01520"></a>01520 CREATE_COPY_NO_IPP(uInt, 1);
<a name="l01521"></a>01521 CREATE_COPY_NO_IPP(sShort, 1);
<a name="l01522"></a>01522 CREATE_COPY_NO_IPP(uShort, 1);
<a name="l01523"></a>01523 
<a name="l01524"></a>01524 CREATE_COPY_NO_IPP(uChar, 3);
<a name="l01525"></a>01525 CREATE_COPY_NO_IPP(sFloat, 3);
<a name="l01526"></a>01526 CREATE_COPY_NO_IPP(sInt, 3);
<a name="l01527"></a>01527 CREATE_COPY_NO_IPP(uInt, 3);
<a name="l01528"></a>01528 CREATE_COPY_NO_IPP(sShort, 3);
<a name="l01529"></a>01529 CREATE_COPY_NO_IPP(uShort, 3);
<a name="l01530"></a>01530 
<a name="l01531"></a>01531 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;src, <span class="keyword">const</span> uChar channel, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;dst)  { CopyC3C1&lt;sFloat&gt;(src, channel, dst); }
<a name="l01532"></a>01532 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;src, <span class="keyword">const</span> uChar channel, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;dst)    { CopyC3C1&lt;uChar&gt;(src, channel, dst); }
<a name="l01533"></a>01533 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <span class="keyword">const</span> uChar channel, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)    { CopyC3C1&lt;sChar&gt;(src, channel, dst); }
<a name="l01534"></a>01534 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <span class="keyword">const</span> uChar channel, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;dst)              { CopyC3C1&lt;sInt&gt;(src, channel, dst); }
<a name="l01535"></a>01535 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <span class="keyword">const</span> uChar channel, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)              { CopyC3C1&lt;uInt&gt;(src, channel, dst); }
<a name="l01536"></a>01536 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;src, <span class="keyword">const</span> uChar channel, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;dst)  { CopyC3C1&lt;sShort&gt;(src, channel, dst); }
<a name="l01537"></a>01537 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;src, <span class="keyword">const</span> uChar channel, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;dst)  { CopyC3C1&lt;uShort&gt;(src, channel, dst); }
<a name="l01538"></a>01538 
<a name="l01539"></a>01539 <span class="comment">// Convert method.</span>
<a name="l01540"></a>01540 <span class="comment">// sFloat</span>
<a name="l01541"></a>01541 <span class="comment">//void Convert(const QVImage&lt;sFloat, 1&gt; &amp;src, QVImage&lt;sFloat, 1&gt; &amp;dst)  { ConvertType&lt;sFloat, sFloat, 1&gt;(src, dst); }</span>
<a name="l01542"></a>01542 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;dst)     { ConvertType&lt;sFloat, uChar, 1&gt;(src, dst); }
<a name="l01543"></a>01543 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)     { ConvertType&lt;sFloat, sChar, 1&gt;(src, dst); }
<a name="l01544"></a>01544 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;dst)      { ConvertType&lt;sFloat, sInt, 1&gt;(src, dst); }
<a name="l01545"></a>01545 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)      { ConvertType&lt;sFloat, uInt, 1&gt;(src, dst); }
<a name="l01546"></a>01546 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;dst)    { ConvertType&lt;sFloat, sShort, 1&gt;(src, dst); }
<a name="l01547"></a>01547 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;dst)    { ConvertType&lt;sFloat, uShort, 1&gt;(src, dst); }
<a name="l01548"></a>01548 
<a name="l01549"></a>01549 <span class="comment">//void Convert(const QVImage&lt;sFloat, 3&gt; &amp;src, QVImage&lt;sFloat, 3&gt; &amp;dst)  { ConvertType&lt;sFloat, sFloat, 3&gt;(src, dst); }</span>
<a name="l01550"></a>01550 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;dst)     { ConvertType&lt;sFloat, uChar, 3&gt;(src, dst); }
<a name="l01551"></a>01551 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)     { ConvertType&lt;sFloat, sChar, 3&gt;(src, dst); }
<a name="l01552"></a>01552 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;dst)      { ConvertType&lt;sFloat, sInt, 3&gt;(src, dst); }
<a name="l01553"></a>01553 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)      { ConvertType&lt;sFloat, uInt, 3&gt;(src, dst); }
<a name="l01554"></a>01554 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;dst)    { ConvertType&lt;sFloat, sShort, 3&gt;(src, dst); }
<a name="l01555"></a>01555 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;dst)    { ConvertType&lt;sFloat, uShort, 3&gt;(src, dst); }
<a name="l01556"></a>01556 
<a name="l01557"></a>01557 <span class="comment">// uChar</span>
<a name="l01558"></a>01558 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;dst)     { ConvertType&lt;uChar, sFloat, 1&gt;(src, dst); }
<a name="l01559"></a>01559 <span class="comment">//void Convert(const QVImage&lt;uChar, 1&gt; &amp;src, QVImage&lt;uChar, 1&gt; &amp;dst)    { ConvertType&lt;uChar, uChar, 1&gt;(src, dst); }</span>
<a name="l01560"></a>01560 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)      { ConvertType&lt;uChar, sChar, 1&gt;(src, dst); }
<a name="l01561"></a>01561 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;dst)       { ConvertType&lt;uChar, sInt, 1&gt;(src, dst); }
<a name="l01562"></a>01562 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)       { ConvertType&lt;uChar, uInt, 1&gt;(src, dst); }
<a name="l01563"></a>01563 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;dst)     { ConvertType&lt;uChar, sShort, 1&gt;(src, dst); }
<a name="l01564"></a>01564 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;dst)     { ConvertType&lt;uChar, uShort, 1&gt;(src, dst); }
<a name="l01565"></a>01565 
<a name="l01566"></a>01566 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;dst)     { ConvertType&lt;uChar, sFloat, 3&gt;(src, dst); }
<a name="l01567"></a>01567 <span class="comment">//void Convert(const QVImage&lt;uChar, 3&gt; &amp;src, QVImage&lt;uChar, 3&gt; &amp;dst)    { ConvertType&lt;uChar, uChar, 3&gt;(src, dst); }</span>
<a name="l01568"></a>01568 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)      { ConvertType&lt;uChar, sChar, 3&gt;(src, dst); }
<a name="l01569"></a>01569 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;dst)       { ConvertType&lt;uChar, sInt, 3&gt;(src, dst); }
<a name="l01570"></a>01570 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)       { ConvertType&lt;uChar, uInt, 3&gt;(src, dst); }
<a name="l01571"></a>01571 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;dst)     { ConvertType&lt;uChar, sShort, 3&gt;(src, dst); }
<a name="l01572"></a>01572 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;dst)     { ConvertType&lt;uChar, uShort, 3&gt;(src, dst); }
<a name="l01573"></a>01573 
<a name="l01574"></a>01574 <span class="comment">// sChar</span>
<a name="l01575"></a>01575 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;dst)     { ConvertType&lt;sChar, sFloat, 1&gt;(src, dst); }
<a name="l01576"></a>01576 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;dst)      { ConvertType&lt;sChar, uChar, 1&gt;(src, dst); }
<a name="l01577"></a>01577 <span class="comment">//void Convert(const QVImage&lt;sChar, 1&gt; &amp;src, QVImage&lt;sChar, 1&gt; &amp;dst)    { ConvertType&lt;uChar, sChar, 1&gt;(src, dst); }</span>
<a name="l01578"></a>01578 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;dst)       { ConvertType&lt;sChar, sInt, 1&gt;(src, dst); }
<a name="l01579"></a>01579 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)       { ConvertType&lt;sChar, uInt, 1&gt;(src, dst); }
<a name="l01580"></a>01580 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;dst)     { ConvertType&lt;sChar, sShort, 1&gt;(src, dst); }
<a name="l01581"></a>01581 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;dst)     { ConvertType&lt;sChar, uShort, 1&gt;(src, dst); }
<a name="l01582"></a>01582 
<a name="l01583"></a>01583 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;dst)     { ConvertType&lt;sChar, sFloat, 3&gt;(src, dst); }
<a name="l01584"></a>01584 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;dst)      { ConvertType&lt;sChar, uChar, 3&gt;(src, dst); }
<a name="l01585"></a>01585 <span class="comment">//void Convert(const QVImage&lt;sChar, 3&gt; &amp;src, QVImage&lt;sChar, 3&gt; &amp;dst)    { ConvertType&lt;uChar, sChar, 3&gt;(src, dst); }</span>
<a name="l01586"></a>01586 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;dst)       { ConvertType&lt;sChar, sInt, 3&gt;(src, dst); }
<a name="l01587"></a>01587 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)       { ConvertType&lt;sChar, uInt, 3&gt;(src, dst); }
<a name="l01588"></a>01588 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;dst)     { ConvertType&lt;sChar, sShort, 3&gt;(src, dst); }
<a name="l01589"></a>01589 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;dst)     { ConvertType&lt;sChar, uShort, 3&gt;(src, dst); }
<a name="l01590"></a>01590 
<a name="l01591"></a>01591 <span class="comment">// sInt</span>
<a name="l01592"></a>01592 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;dst)      { ConvertType&lt;sInt, sFloat, 1&gt;(src, dst); }
<a name="l01593"></a>01593 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;dst)       { ConvertType&lt;sInt, uChar, 1&gt;(src, dst); }
<a name="l01594"></a>01594 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)       { ConvertType&lt;sInt, sChar, 1&gt;(src, dst); }
<a name="l01595"></a>01595 <span class="comment">//void Convert(const QVImage&lt;sInt, 1&gt; &amp;src, QVImage&lt;sInt, 1&gt; &amp;dst)      { ConvertType&lt;sInt, sInt, 1&gt;(src, dst); }</span>
<a name="l01596"></a>01596 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)        { ConvertType&lt;sInt, uInt, 1&gt;(src, dst); }
<a name="l01597"></a>01597 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;dst)      { ConvertType&lt;sInt, sShort, 1&gt;(src, dst); }
<a name="l01598"></a>01598 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;dst)      { ConvertType&lt;sInt, uShort, 1&gt;(src, dst); }
<a name="l01599"></a>01599 
<a name="l01600"></a>01600 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;dst)      { ConvertType&lt;sInt, sFloat, 3&gt;(src, dst); }
<a name="l01601"></a>01601 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;dst)       { ConvertType&lt;sInt, uChar, 3&gt;(src, dst); }
<a name="l01602"></a>01602 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)       { ConvertType&lt;sInt, sChar, 3&gt;(src, dst); }
<a name="l01603"></a>01603 <span class="comment">//void Convert(const QVImage&lt;sInt, 3&gt; &amp;src, QVImage&lt;sInt, 3&gt; &amp;dst)      { ConvertType&lt;sInt, sInt, 3&gt;(src, dst); }</span>
<a name="l01604"></a>01604 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)        { ConvertType&lt;sInt, uInt, 3&gt;(src, dst); }
<a name="l01605"></a>01605 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;dst)      { ConvertType&lt;sInt, sShort, 3&gt;(src, dst); }
<a name="l01606"></a>01606 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;dst)      { ConvertType&lt;sInt, uShort, 3&gt;(src, dst); }
<a name="l01607"></a>01607 
<a name="l01608"></a>01608 <span class="comment">// uInt</span>
<a name="l01609"></a>01609 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;dst)      { ConvertType&lt;uInt, sFloat, 1&gt;(src, dst); }
<a name="l01610"></a>01610 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;dst)       { ConvertType&lt;uInt, uChar, 1&gt;(src, dst); }
<a name="l01611"></a>01611 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)       { ConvertType&lt;uInt, sChar, 1&gt;(src, dst); }
<a name="l01612"></a>01612 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;dst)        { ConvertType&lt;uInt, sInt, 1&gt;(src, dst); }
<a name="l01613"></a>01613 <span class="comment">//void Convert(const QVImage&lt;uInt, 1&gt; &amp;src, QVImage&lt;uInt, 1&gt; &amp;dst)      { ConvertType&lt;uInt, uInt, 1&gt;(src, dst); }</span>
<a name="l01614"></a>01614 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;dst)      { ConvertType&lt;uInt, sShort, 1&gt;(src, dst); }
<a name="l01615"></a>01615 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;dst)      { ConvertType&lt;uInt, uShort, 1&gt;(src, dst); }
<a name="l01616"></a>01616 
<a name="l01617"></a>01617 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;dst)      { ConvertType&lt;uInt, sFloat, 3&gt;(src, dst); }
<a name="l01618"></a>01618 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;dst)       { ConvertType&lt;uInt, uChar, 3&gt;(src, dst); }
<a name="l01619"></a>01619 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)       { ConvertType&lt;uInt, sChar, 3&gt;(src, dst); }
<a name="l01620"></a>01620 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;dst)        { ConvertType&lt;uInt, sInt, 3&gt;(src, dst); }
<a name="l01621"></a>01621 <span class="comment">//void Convert(const QVImage&lt;uInt, 3&gt; &amp;src, QVImage&lt;uInt, 3&gt; &amp;dst)      { ConvertType&lt;uInt, uInt, 3&gt;(src, dst); }</span>
<a name="l01622"></a>01622 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;dst)      { ConvertType&lt;uInt, sShort, 3&gt;(src, dst); }
<a name="l01623"></a>01623 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;dst)      { ConvertType&lt;uInt, uShort, 3&gt;(src, dst); }
<a name="l01624"></a>01624 
<a name="l01625"></a>01625 <span class="comment">// sShort</span>
<a name="l01626"></a>01626 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;dst)    { ConvertType&lt;sShort, sFloat, 1&gt;(src, dst); }
<a name="l01627"></a>01627 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;dst)     { ConvertType&lt;sShort, uChar, 1&gt;(src, dst); }
<a name="l01628"></a>01628 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)     { ConvertType&lt;sShort, sChar, 1&gt;(src, dst); }
<a name="l01629"></a>01629 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;dst)      { ConvertType&lt;sShort, sInt, 1&gt;(src, dst); }
<a name="l01630"></a>01630 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)      { ConvertType&lt;sShort, uInt, 1&gt;(src, dst); }
<a name="l01631"></a>01631 <span class="comment">//void Convert(const QVImage&lt;sShort, 1&gt; &amp;src, QVImage&lt;sShort, 1&gt; &amp;dst)  { ConvertType&lt;sShort, sShort, 1&gt;(src, dst); }</span>
<a name="l01632"></a>01632 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;dst)    { ConvertType&lt;sShort, uShort, 1&gt;(src, dst); }
<a name="l01633"></a>01633 
<a name="l01634"></a>01634 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;dst)    { ConvertType&lt;sShort, sFloat, 3&gt;(src, dst); }
<a name="l01635"></a>01635 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;dst)     { ConvertType&lt;sShort, uChar, 3&gt;(src, dst); }
<a name="l01636"></a>01636 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)     { ConvertType&lt;sShort, sChar, 3&gt;(src, dst); }
<a name="l01637"></a>01637 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;dst)      { ConvertType&lt;sShort, sInt, 3&gt;(src, dst); }
<a name="l01638"></a>01638 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)      { ConvertType&lt;sShort, uInt, 3&gt;(src, dst); }
<a name="l01639"></a>01639 <span class="comment">//void Convert(const QVImage&lt;sShort, 3&gt; &amp;src, QVImage&lt;sShort, 3&gt; &amp;dst)  { ConvertType&lt;sShort, sShort, 3&gt;(src, dst); }</span>
<a name="l01640"></a>01640 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;dst)    { ConvertType&lt;sShort, uShort, 3&gt;(src, dst); }
<a name="l01641"></a>01641 
<a name="l01642"></a>01642 <span class="comment">// uShort</span>
<a name="l01643"></a>01643 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;dst)    { ConvertType&lt;uShort, sFloat, 1&gt;(src, dst); }
<a name="l01644"></a>01644 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;dst)     { ConvertType&lt;uShort, uChar, 1&gt;(src, dst); }
<a name="l01645"></a>01645 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)     { ConvertType&lt;uShort, sChar, 1&gt;(src, dst); }
<a name="l01646"></a>01646 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;dst)      { ConvertType&lt;uShort, sInt, 1&gt;(src, dst); }
<a name="l01647"></a>01647 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)      { ConvertType&lt;uShort, uInt, 1&gt;(src, dst); }
<a name="l01648"></a>01648 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;dst)    { ConvertType&lt;uShort, sShort, 1&gt;(src, dst); }
<a name="l01649"></a>01649 <span class="comment">//void Convert(const QVImage&lt;uShort, 1&gt; &amp;src, QVImage&lt;uShort, 1&gt; &amp;dst)  { ConvertType&lt;uShort, uShort, 1&gt;(src, dst); }</span>
<a name="l01650"></a>01650 
<a name="l01651"></a>01651 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;dst)    { ConvertType&lt;uShort, sFloat, 3&gt;(src, dst); }
<a name="l01652"></a>01652 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;dst)     { ConvertType&lt;uShort, uChar, 3&gt;(src, dst); }
<a name="l01653"></a>01653 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)     { ConvertType&lt;uShort, sChar, 3&gt;(src, dst); }
<a name="l01654"></a>01654 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;dst)      { ConvertType&lt;uShort, sInt, 3&gt;(src, dst); }
<a name="l01655"></a>01655 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)      { ConvertType&lt;uShort, uInt, 3&gt;(src, dst); }
<a name="l01656"></a>01656 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;dst)    { ConvertType&lt;uShort, sShort, 3&gt;(src, dst); }
<a name="l01657"></a>01657 <span class="comment">//void Convert(const QVImage&lt;uShort, 3&gt; &amp;src, QVImage&lt;uShort, 3&gt; &amp;dst)  { ConvertType&lt;uShort, uShort, 3&gt;(src, dst); }</span>
<a name="l01658"></a>01658 
<a name="l01659"></a>01659 <span class="comment">// Convert method.</span>
<a name="l01660"></a>01660 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;dst)    { ConvertC3C1&lt;sFloat&gt;(src, dst); }
<a name="l01661"></a>01661 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)              { ConvertC3C1&lt;sChar&gt;(src, dst); }
<a name="l01662"></a>01662 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;dst)              { ConvertC3C1&lt;uChar&gt;(src, dst); }
<a name="l01663"></a>01663 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;dst)                { ConvertC3C1&lt;sInt&gt;(src, dst); }
<a name="l01664"></a>01664 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)                { ConvertC3C1&lt;uInt&gt;(src, dst); }
<a name="l01665"></a>01665 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;dst)    { ConvertC3C1&lt;sShort&gt;(src, dst); }
<a name="l01666"></a>01666 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;dst)    { ConvertC3C1&lt;uShort&gt;(src, dst); }
<a name="l01667"></a>01667 
<a name="l01668"></a>01668 <span class="keywordtype">void</span> RGBToGray(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;dst)  { ConvertC3C1&lt;sFloat&gt;(src, dst); }
<a name="l01669"></a>01669 <span class="keywordtype">void</span> RGBToGray(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)    { ConvertC3C1&lt;sChar&gt;(src, dst); }
<a name="l01670"></a>01670 <span class="keywordtype">void</span> RGBToGray(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;dst)    { ConvertC3C1&lt;uChar&gt;(src, dst); }
<a name="l01671"></a>01671 <span class="keywordtype">void</span> RGBToGray(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;dst)              { ConvertC3C1&lt;sInt&gt;(src, dst); }
<a name="l01672"></a>01672 <span class="keywordtype">void</span> RGBToGray(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)              { ConvertC3C1&lt;uInt&gt;(src, dst); }
<a name="l01673"></a>01673 <span class="keywordtype">void</span> RGBToGray(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;dst)  { ConvertC3C1&lt;sShort&gt;(src, dst); }
<a name="l01674"></a>01674 <span class="keywordtype">void</span> RGBToGray(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;dst)  { ConvertC3C1&lt;uShort&gt;(src, dst); }
<a name="l01675"></a>01675 
<a name="l01676"></a>01676 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;dst)    { ConvertC1C3&lt;sFloat&gt;(src, dst); }
<a name="l01677"></a>01677 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)              { ConvertC1C3&lt;sChar&gt;(src, dst); }
<a name="l01678"></a>01678 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;dst)              { ConvertC1C3&lt;uChar&gt;(src, dst); }
<a name="l01679"></a>01679 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;dst)                { ConvertC1C3&lt;sInt&gt;(src, dst); }
<a name="l01680"></a>01680 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)                { ConvertC1C3&lt;uInt&gt;(src, dst); }
<a name="l01681"></a>01681 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;dst)    { ConvertC1C3&lt;sShort&gt;(src, dst); }
<a name="l01682"></a>01682 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;dst)    { ConvertC1C3&lt;uShort&gt;(src, dst); }
<a name="l01683"></a>01683 
<a name="l01684"></a>01684 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;src1, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;src2, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;src3, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;dst)      { CopyC1x3C3&lt;sFloat&gt;(src1, src2, src3, dst); }
<a name="l01685"></a>01685 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;src1, <span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;src2, <span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;src3, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;dst)          { CopyC1x3C3&lt;uChar&gt;(src1, src2, src3, dst); }
<a name="l01686"></a>01686 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src1, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src2, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src3, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)          { CopyC1x3C3&lt;sChar&gt;(src1, src2, src3, dst); }
<a name="l01687"></a>01687 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src1, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src2, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src3, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)                      { CopyC1x3C3&lt;uInt&gt;(src1, src2, src3, dst); }
<a name="l01688"></a>01688 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src1, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src2, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src3, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;dst)                      { CopyC1x3C3&lt;sInt&gt;(src1, src2, src3, dst); }
<a name="l01689"></a>01689 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;src1, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;src2, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;src3, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;dst)      { CopyC1x3C3&lt;uShort&gt;(src1, src2, src3, dst); }
<a name="l01690"></a>01690 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;src1, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;src2, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;src3, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;dst)      { CopyC1x3C3&lt;sShort&gt;(src1, src2, src3, dst); }
<a name="l01691"></a>01691 
<a name="l01692"></a>01692 <span class="comment">// Unimplemented functions.</span>
<a name="l01693"></a>01693 <span class="keywordtype">void</span> <a class="code" href="group__qvippIGT.html#gafeadedf07a0e3f27bf0c39e361339e23" title="Changes an image size.This function copies the content of the ROI in the source image...">Resize</a>(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar&gt;</a> &amp;dest)
<a name="l01694"></a>01694         {
<a name="l01695"></a>01695         std::cout &lt;&lt; <span class="stringliteral">&quot;Warning: Resize function without IPP is to be implemented soon.&quot;</span> &lt;&lt; std::endl;
<a name="l01696"></a>01696         dest = src;
<a name="l01697"></a>01697         }
<a name="l01698"></a>01698 
<a name="l01699"></a>01699 <span class="keywordtype">void</span> <a class="code" href="group__qvippIGT.html#gafeadedf07a0e3f27bf0c39e361339e23" title="Changes an image size.This function copies the content of the ROI in the source image...">Resize</a>(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar,3&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar,3&gt;</a> &amp;dest)
<a name="l01700"></a>01700         {
<a name="l01701"></a>01701         std::cout &lt;&lt; <span class="stringliteral">&quot;Warning: Resize function without IPP is to be implemented soon.&quot;</span> &lt;&lt; std::endl;
<a name="l01702"></a>01702         dest = src;
<a name="l01703"></a>01703         }
<a name="l01704"></a>01704 
<a name="l01705"></a>01705 <span class="keywordtype">void</span> <a class="code" href="group__qvippICC.html#ga1a13cf2a5106e65fc94f046e98f547ca">YUV420ToRGB</a>(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;srcY, <span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;srcU, <span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;srcV,
<a name="l01706"></a>01706         <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;destRGB)
<a name="l01707"></a>01707         {
<a name="l01708"></a>01708         std::cout &lt;&lt; <span class="stringliteral">&quot;Warning: YUV420ToRGB function without IPP is to be implemented soon.&quot;</span> &lt;&lt; std::endl;
<a name="l01709"></a>01709         <span class="comment">/*const double y2 = y, u2 = u-128, v2 = v - 128;</span>
<a name="l01710"></a>01710 <span class="comment"></span>
<a name="l01711"></a>01711 <span class="comment">        double  r =     +y2                     + 1.370705*v2,</span>
<a name="l01712"></a>01712 <span class="comment">                g =     +y2     - 0.337633*u2   - 0.698001*v2,</span>
<a name="l01713"></a>01713 <span class="comment">                b =     +y2     + 1.732446*u2;</span>
<a name="l01714"></a>01714 <span class="comment">        </span>
<a name="l01715"></a>01715 <span class="comment">        // Even with proper conversion, some values still need clipping.</span>
<a name="l01716"></a>01716 <span class="comment">        if (r &gt; 255) r = 255;</span>
<a name="l01717"></a>01717 <span class="comment">        if (g &gt; 255) g = 255;</span>
<a name="l01718"></a>01718 <span class="comment">        if (b &gt; 255) b = 255;</span>
<a name="l01719"></a>01719 <span class="comment">        if (r &lt; 0) r = 0;</span>
<a name="l01720"></a>01720 <span class="comment">        if (g &lt; 0) g = 0;</span>
<a name="l01721"></a>01721 <span class="comment">        if (b &lt; 0) b = 0;</span>
<a name="l01722"></a>01722 <span class="comment">        </span>
<a name="l01723"></a>01723 <span class="comment">        // Values only go from 0-220..  Why?</span>
<a name="l01724"></a>01724 <span class="comment">        pixel[0] = r * 220 / 256;</span>
<a name="l01725"></a>01725 <span class="comment">        pixel[1] = g * 220 / 256;</span>
<a name="l01726"></a>01726 <span class="comment">        pixel[2] = b * 220 / 256;*/</span>
<a name="l01727"></a>01727 
<a name="l01728"></a>01728         <span class="comment">/* Alternate formula. From http://msdn.microsoft.com/en-us/library/ms893078.aspx</span>
<a name="l01729"></a>01729 <span class="comment">        //clip denotes clipping the value to the range 0-255</span>
<a name="l01730"></a>01730 <span class="comment">        C = Y - 16</span>
<a name="l01731"></a>01731 <span class="comment">        D = U - 128</span>
<a name="l01732"></a>01732 <span class="comment">        E = V - 128</span>
<a name="l01733"></a>01733 <span class="comment">        R = clip(( 298 * C           + 409 * E + 128) &gt;&gt; 8)</span>
<a name="l01734"></a>01734 <span class="comment">        G = clip(( 298 * C - 100 * D - 208 * E + 128) &gt;&gt; 8)</span>
<a name="l01735"></a>01735 <span class="comment">        B = clip(( 298 * C + 516 * D           + 128) &gt;&gt; 8)</span>
<a name="l01736"></a>01736 <span class="comment">        */</span>
<a name="l01737"></a>01737         Convert(srcY, destRGB);
<a name="l01738"></a>01738         }
<a name="l01739"></a>01739 
<a name="l01740"></a>01740 <span class="keywordtype">void</span> <a class="code" href="group__qvippICC.html#ga6bed5439d377438a4d1a687a2d326a69">RGBToYUV420</a>(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;dstY, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;dstU, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;dstV)
<a name="l01741"></a>01741         {
<a name="l01742"></a>01742         std::cout &lt;&lt; <span class="stringliteral">&quot;Warning: RGBToYUV420 function without IPP is to be implemented soon.&quot;</span> &lt;&lt; std::endl;
<a name="l01743"></a>01743         <span class="comment">/* From http://msdn.microsoft.com/en-us/library/ms893078.aspx</span>
<a name="l01744"></a>01744 <span class="comment">        Y = ( (  66 * R + 129 * G +  25 * B + 128) &gt;&gt; 8) +  16</span>
<a name="l01745"></a>01745 <span class="comment">        U = ( ( -38 * R -  74 * G + 112 * B + 128) &gt;&gt; 8) + 128</span>
<a name="l01746"></a>01746 <span class="comment">        V = ( ( 112 * R -  94 * G -  18 * B + 128) &gt;&gt; 8) + 128</span>
<a name="l01747"></a>01747 <span class="comment">        */</span>
<a name="l01748"></a>01748         Convert(src, dstY);
<a name="l01749"></a>01749         dstU = dstV = <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a>(src.<a class="code" href="classQVImage.html#ad0f2758702ee4d96d538aa353ae81bb7" title="Overloaded function from QVGenericImage::getCols().">getCols</a>() / 2, src.<a class="code" href="classQVImage.html#a55e71ad628f450ee82bb4226cb62ec17" title="Overloaded function from QVGenericImage::getRows().">getRows</a>() / 2);
<a name="l01750"></a>01750         <a class="code" href="group__qvippIDEAIF.html#gae2bed87200a1f753701bf5fc1e7a476b" title="Sets pixels in the image buffer to a constant value.">Set</a>(128, dstU);
<a name="l01751"></a>01751         <a class="code" href="group__qvippIDEAIF.html#gae2bed87200a1f753701bf5fc1e7a476b" title="Sets pixels in the image buffer to a constant value.">Set</a>(128, dstV);
<a name="l01752"></a>01752         }
<a name="l01753"></a>01753 
<a name="l01754"></a>01754 <span class="preprocessor">#else</span>
<a name="l01755"></a>01755 <span class="preprocessor"></span><span class="comment">// Functions not provided by the IPP.</span>
<a name="l01756"></a>01756 <span class="comment">// sFloat</span>
<a name="l01757"></a>01757 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)     { ConvertType&lt;sFloat, sChar, 1&gt;(src, dst); }
<a name="l01758"></a>01758 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;dst)      { ConvertType&lt;sFloat, sInt, 1&gt;(src, dst); }
<a name="l01759"></a>01759 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)      { ConvertType&lt;sFloat, uInt, 1&gt;(src, dst); }
<a name="l01760"></a>01760 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)     { ConvertType&lt;sFloat, sChar, 3&gt;(src, dst); }
<a name="l01761"></a>01761 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;dst)      { ConvertType&lt;sFloat, sInt, 3&gt;(src, dst); }
<a name="l01762"></a>01762 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)      { ConvertType&lt;sFloat, uInt, 3&gt;(src, dst); }
<a name="l01763"></a>01763 
<a name="l01764"></a>01764 <span class="comment">// uChar</span>
<a name="l01765"></a>01765 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)      { ConvertType&lt;uChar, sChar, 1&gt;(src, dst); }
<a name="l01766"></a>01766 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)       { ConvertType&lt;uChar, uInt, 1&gt;(src, dst); }
<a name="l01767"></a>01767 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)      { ConvertType&lt;uChar, sChar, 3&gt;(src, dst); }
<a name="l01768"></a>01768 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)       { ConvertType&lt;uChar, uInt, 3&gt;(src, dst); }
<a name="l01769"></a>01769 
<a name="l01770"></a>01770 <span class="comment">// sChar</span>
<a name="l01771"></a>01771 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;dst)     { ConvertType&lt;sChar, sFloat, 1&gt;(src, dst); }
<a name="l01772"></a>01772 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;dst)      { ConvertType&lt;sChar, uChar, 1&gt;(src, dst); }
<a name="l01773"></a>01773 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;dst)       { ConvertType&lt;sChar, sInt, 1&gt;(src, dst); }
<a name="l01774"></a>01774 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)       { ConvertType&lt;sChar, uInt, 1&gt;(src, dst); }
<a name="l01775"></a>01775 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;dst)     { ConvertType&lt;sChar, sShort, 1&gt;(src, dst); }
<a name="l01776"></a>01776 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;dst)     { ConvertType&lt;sChar, uShort, 1&gt;(src, dst); }
<a name="l01777"></a>01777 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;dst)     { ConvertType&lt;sChar, sFloat, 3&gt;(src, dst); }
<a name="l01778"></a>01778 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;dst)      { ConvertType&lt;sChar, uChar, 3&gt;(src, dst); }
<a name="l01779"></a>01779 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;dst)       { ConvertType&lt;sChar, sInt, 3&gt;(src, dst); }
<a name="l01780"></a>01780 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)       { ConvertType&lt;sChar, uInt, 3&gt;(src, dst); }
<a name="l01781"></a>01781 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;dst)     { ConvertType&lt;sChar, sShort, 3&gt;(src, dst); }
<a name="l01782"></a>01782 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;dst)     { ConvertType&lt;sChar, uShort, 3&gt;(src, dst); }
<a name="l01783"></a>01783 
<a name="l01784"></a>01784 <span class="comment">// sInt</span>
<a name="l01785"></a>01785 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;dst)      { ConvertType&lt;sInt, sFloat, 1&gt;(src, dst); }
<a name="l01786"></a>01786 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)       { ConvertType&lt;sInt, sChar, 1&gt;(src, dst); }
<a name="l01787"></a>01787 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)        { ConvertType&lt;sInt, uInt, 1&gt;(src, dst); }
<a name="l01788"></a>01788 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;dst)      { ConvertType&lt;sInt, sShort, 1&gt;(src, dst); }
<a name="l01789"></a>01789 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;dst)      { ConvertType&lt;sInt, uShort, 1&gt;(src, dst); }
<a name="l01790"></a>01790 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;dst)      { ConvertType&lt;sInt, sFloat, 3&gt;(src, dst); }
<a name="l01791"></a>01791 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)       { ConvertType&lt;sInt, sChar, 3&gt;(src, dst); }
<a name="l01792"></a>01792 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)        { ConvertType&lt;sInt, uInt, 3&gt;(src, dst); }
<a name="l01793"></a>01793 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;dst)      { ConvertType&lt;sInt, sShort, 3&gt;(src, dst); }
<a name="l01794"></a>01794 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;dst)      { ConvertType&lt;sInt, uShort, 3&gt;(src, dst); }
<a name="l01795"></a>01795 
<a name="l01796"></a>01796 <span class="comment">// uInt</span>
<a name="l01797"></a>01797 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 1&gt;</a> &amp;dst)      { ConvertType&lt;uInt, sFloat, 1&gt;(src, dst); }
<a name="l01798"></a>01798 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 1&gt;</a> &amp;dst)       { ConvertType&lt;uInt, uChar, 1&gt;(src, dst); }
<a name="l01799"></a>01799 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)       { ConvertType&lt;uInt, sChar, 1&gt;(src, dst); }
<a name="l01800"></a>01800 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;dst)        { ConvertType&lt;uInt, sInt, 1&gt;(src, dst); }
<a name="l01801"></a>01801 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;dst)      { ConvertType&lt;uInt, sShort, 1&gt;(src, dst); }
<a name="l01802"></a>01802 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;dst)      { ConvertType&lt;uInt, uShort, 1&gt;(src, dst); }
<a name="l01803"></a>01803 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sFloat, 3&gt;</a> &amp;dst)      { ConvertType&lt;uInt, sFloat, 3&gt;(src, dst); }
<a name="l01804"></a>01804 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html">QVImage&lt;uChar, 3&gt;</a> &amp;dst)       { ConvertType&lt;uInt, uChar, 3&gt;(src, dst); }
<a name="l01805"></a>01805 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)       { ConvertType&lt;uInt, sChar, 3&gt;(src, dst); }
<a name="l01806"></a>01806 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;dst)        { ConvertType&lt;uInt, sInt, 3&gt;(src, dst); }
<a name="l01807"></a>01807 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;dst)      { ConvertType&lt;uInt, sShort, 3&gt;(src, dst); }
<a name="l01808"></a>01808 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;dst)      { ConvertType&lt;uInt, uShort, 3&gt;(src, dst); }
<a name="l01809"></a>01809 
<a name="l01810"></a>01810 <span class="comment">// sShort</span>
<a name="l01811"></a>01811 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)     { ConvertType&lt;sShort, sChar, 1&gt;(src, dst); }
<a name="l01812"></a>01812 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)      { ConvertType&lt;sShort, uInt, 1&gt;(src, dst); }
<a name="l01813"></a>01813 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;dst)    { ConvertType&lt;sShort, uShort, 1&gt;(src, dst); }
<a name="l01814"></a>01814 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)     { ConvertType&lt;sShort, sChar, 3&gt;(src, dst); }
<a name="l01815"></a>01815 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)      { ConvertType&lt;sShort, uInt, 3&gt;(src, dst); }
<a name="l01816"></a>01816 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;dst)    { ConvertType&lt;sShort, uShort, 3&gt;(src, dst); }
<a name="l01817"></a>01817 
<a name="l01818"></a>01818 <span class="comment">// uShort</span>
<a name="l01819"></a>01819 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)     { ConvertType&lt;uShort, sChar, 1&gt;(src, dst); }
<a name="l01820"></a>01820 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)      { ConvertType&lt;uShort, uInt, 1&gt;(src, dst); }
<a name="l01821"></a>01821 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 1&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 1&gt;</a> &amp;dst)    { ConvertType&lt;uShort, sShort, 1&gt;(src, dst); }
<a name="l01822"></a>01822 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)     { ConvertType&lt;uShort, sChar, 3&gt;(src, dst); }
<a name="l01823"></a>01823 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)      { ConvertType&lt;uShort, uInt, 3&gt;(src, dst); }
<a name="l01824"></a>01824 <span class="keywordtype">void</span> Convert(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uShort, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sShort, 3&gt;</a> &amp;dst)    { ConvertType&lt;uShort, sShort, 3&gt;(src, dst); }
<a name="l01825"></a>01825 
<a name="l01826"></a>01826 <span class="keywordtype">void</span> RGBToGray(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;dst)    { ConvertC3C1&lt;sChar&gt;(src, dst); }
<a name="l01827"></a>01827 <span class="keywordtype">void</span> RGBToGray(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;dst)              { ConvertC3C1&lt;uInt&gt;(src, dst); }
<a name="l01828"></a>01828 <span class="keywordtype">void</span> RGBToGray(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 3&gt;</a> &amp;src, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sInt, 1&gt;</a> &amp;dst)              { ConvertC3C1&lt;sInt&gt;(src, dst); }
<a name="l01829"></a>01829 
<a name="l01830"></a>01830 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src1, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src2, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 1&gt;</a> &amp;src3, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;sChar, 3&gt;</a> &amp;dst)          { CopyC1x3C3&lt;sChar&gt;(src1, src2, src3, dst); }
<a name="l01831"></a>01831 <span class="keywordtype">void</span> Copy(<span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src1, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src2, <span class="keyword">const</span> <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 1&gt;</a> &amp;src3, <a class="code" href="classQVImage.html" title="Image representation class for the QVision.">QVImage&lt;uInt, 3&gt;</a> &amp;dst)                      { CopyC1x3C3&lt;uInt&gt;(src1, src2, src3, dst); }
<a name="l01832"></a>01832 
<a name="l01833"></a>01833 <span class="preprocessor">#endif // QVIPP</span>
</pre></div></div>
</td></tr></table>

<br /><hr><br />
<center><a href="http://perception.inf.um.es/QVision">QVision framework</a>.
<a href="http://perception.inf.um.es">PARP research group</a>.
Copyright &copy; 2007, 2008, 2009, 2010, 2011.</center>
<br />
</body>
</html>
